C# 在MVC中使用HTML按钮
问这个问题我觉得有点傻,但我只想知道如何在我的控制器上用html按钮调用服务器站点操作 例如,假设我有一个文本区域和一个提交按钮。想法是单击submit按钮,文本区域中的文本将被提交到数据库。非常简单的东西C# 在MVC中使用HTML按钮,c#,asp.net-mvc,model-view-controller,C#,Asp.net Mvc,Model View Controller,问这个问题我觉得有点傻,但我只想知道如何在我的控制器上用html按钮调用服务器站点操作 例如,假设我有一个文本区域和一个提交按钮。想法是单击submit按钮,文本区域中的文本将被提交到数据库。非常简单的东西 谢谢你的帮助 在视图的HTML中,文本区域和提交按钮将是表单的一部分,该表单的操作属性将指向',您将一部分放入生成该视图的同一控制器中,该视图将检查POST数据。如果有POST数据,则将其写入数据库 该表单将如下所示: <form action='' method='post'>
谢谢你的帮助 在视图的HTML中,文本区域和提交按钮将是表单的一部分,该表单的
操作
属性将指向'
,您将一部分放入生成该视图的同一控制器中,该视图将检查POST数据。如果有POST数据,则将其写入数据库
该表单将如下所示:
<form action='' method='post'>
<textarea name="text"></textarea>
<input type="submit" value="Submit"/>
</form>
在本文中,您将看到一个变量,其键与textarea的name
属性相匹配(在本例中为text
)。你可以从那里读到
如果愿意,您还可以将表单上的
action
属性更改为URL,在这种情况下,您可以在该URL指向的控制器中编写检查POST数据的部分。在视图的HTML中,文本区域和提交按钮将是表单的一部分,该表单的action
属性将指向'
,并且您将一个部分放入生成检查POST数据的视图的同一个控制器中。如果有POST数据,则将其写入数据库
该表单将如下所示:
<form action='' method='post'>
<textarea name="text"></textarea>
<input type="submit" value="Submit"/>
</form>
在本文中,您将看到一个变量,其键与textarea的name
属性相匹配(在本例中为text
)。你可以从那里读到
如果愿意,您还可以将表单上的action
属性更改为URL,在这种情况下,您可以在该URL指向的控制器中编写检查POST数据的部分。在aspx中:
<%Html.BeginForm("Hello","Home",FormMethod.Post);%> <!--Name of method, name of controller, formmethod -->
<input type="text" id="userName" maxlength="50" name="userName"/>
<input id="Submit1" type="submit" value="Say Hello!" />
<%Html.EndForm();%>
<h2><%= Html.Encode(TempData["Message"]) %></h2>
编辑:解决有关维护URL的其他问题
实现URL“原地不动”的一种方法是“重载”控制器的索引方法,如下所示
[AcceptVerbs(HttpVerbs.Post)] //This is KEY <-----
public ActionResult Index(string userName)
{
//simple example, take input and pass back out
TempData["Message"] = "Hello, " + userName;
return View("Index",TempData);
}
[AcceptVerbs(HttpVerbs.Post)]//这是aspx中的关键:
<%Html.BeginForm("Hello","Home",FormMethod.Post);%> <!--Name of method, name of controller, formmethod -->
<input type="text" id="userName" maxlength="50" name="userName"/>
<input id="Submit1" type="submit" value="Say Hello!" />
<%Html.EndForm();%>
<h2><%= Html.Encode(TempData["Message"]) %></h2>
编辑:解决有关维护URL的其他问题
实现URL“原地不动”的一种方法是“重载”控制器的索引方法,如下所示
[AcceptVerbs(HttpVerbs.Post)] //This is KEY <-----
public ActionResult Index(string userName)
{
//simple example, take input and pass back out
TempData["Message"] = "Hello, " + userName;
return View("Index",TempData);
}
[AcceptVerbs(HttpVerbs.Post)]//这是关键,感谢您的评论。但是,我如何定义获取textarea数据的服务器端函数呢?谢谢您的评论。但是,我如何定义获取textarea数据的服务器端函数呢?谢谢您的评论。到目前为止,这似乎已经奏效,我现在唯一的问题是,它从“Hello”操作返回后,会弄乱我的URL。您知道如何返回url中当前具有的相同控制器/操作/ID的视图吗?谢谢您的评论。到目前为止,这似乎已经奏效,我现在唯一的问题是,它从“Hello”操作返回后,会弄乱我的URL。您知道如何返回url中当前具有的相同控制器/操作/ID的视图吗?