10

我对.NET 的所有东西都是全新的。我有一个带有 HTML 表单的非常基本的网页。我希望“onsubmit”将表单数据从视图发送到控制器。我看过与此类似的帖子,但没有一个答案涉及新的 Razor 语法。我如何处理“onsubmit”,以及如何从 Controller 访问数据?谢谢!!

4

2 回答 2

26

您可以包装您想要在 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 一起传递。由你决定。

希望能帮助到你。

编辑:当我在写其他用户时,其他用户也向您推荐了一些有用的链接。看一看。

于 2012-06-08T22:41:44.657 回答
0

通过以下方式定义表单:

@using (Html.BeginForm("ControllerMethod", "ControllerName", FormMethod.Post))

将调用控制器“ControllerName”中的方法“ControllerMethod”。在该方法中,您可以接受模型或其他数据类型作为输入。有关使用表单和 razor mvc 的示例,请参阅教程。

于 2012-06-08T22:38:08.637 回答