我对.NET 的所有东西都是全新的。我有一个带有 HTML 表单的非常基本的网页。我希望“onsubmit”将表单数据从视图发送到控制器。我看过与此类似的帖子,但没有一个答案涉及新的 Razor 语法。我如何处理“onsubmit”,以及如何从 Controller 访问数据?谢谢!!
2 回答
您可以包装您想要在 Html.Beginform 中传递的视图控件。
例如:
@using (Html.BeginForm("ActionMethodName","ControllerName"))
{
... your input, labels, textboxes and other html controls go here
<input class="button" id="submit" type="submit" value="Submit" />
}
当按下提交按钮时,Beginform 中的所有内容都将提交给“ControllerName”控制器的“ActionMethodName”方法。
在控制器端,您可以像这样访问从视图中接收到的所有数据:
public ActionResult ActionMethodName(FormCollection collection)
{
string userName = collection.Get("username-input");
}
上面的集合对象将包含我们从表单提交的所有输入条目。您可以像访问任何数组一样按名称访问它们:collection["blah"] 或 collection.Get("blah")
您也可以直接将参数传递给您的控制器,而无需使用 FormCollection 发送整个页面:
@using (Html.BeginForm("ActionMethodName","ControllerName",new {id = param1, name = param2}))
{
... your input, labels, textboxes and other html controls go here
<input class="button" id="submit" type="submit" value="Submit" />
}
public ActionResult ActionMethodName(string id,string name)
{
string myId = id;
string myName = name;
}
或者,您可以将这两种方法结合起来,并将特定参数与 Formcollection 一起传递。由你决定。
希望能帮助到你。
编辑:当我在写其他用户时,其他用户也向您推荐了一些有用的链接。看一看。
通过以下方式定义表单:
@using (Html.BeginForm("ControllerMethod", "ControllerName", FormMethod.Post))
将调用控制器“ControllerName”中的方法“ControllerMethod”。在该方法中,您可以接受模型或其他数据类型作为输入。有关使用表单和 razor mvc 的示例,请参阅本教程。