【发布时间】:2011-04-07 17:25:58
【问题描述】:
我有一个问题。
我需要将C# and MVC3 中的值传递给控制器,但我不知道如何。
我认为的代码是:
@html.textbox("Name");
<input value="Envoyer" type="submit">
请问如何将name 的值传递给我的控制器?
谢谢
【问题讨论】:
标签: c# asp.net asp.net-mvc-3
我有一个问题。
我需要将C# and MVC3 中的值传递给控制器,但我不知道如何。
我认为的代码是:
@html.textbox("Name");
<input value="Envoyer" type="submit">
请问如何将name 的值传递给我的控制器?
谢谢
【问题讨论】:
标签: c# asp.net asp.net-mvc-3
还有另一种方法。
[HttpPost]
public ActionResult Index() {
string name = Request["name"];
}
【讨论】:
将其包装在一个表单中,并使用某种提交按钮来调用您的操作方法。
<% using (Html.BeginForm("MethodName", "Home", FormMethod.Post)) {%>
<% Html.Textbox("Name") %>
<input value="Envoyer" type="submit" />
<% } %>
[HttpPost]
public ActionResult MethodName(FormCollection col)
{
string name = col["Name"];
}
【讨论】:
在 MVC 3 中,您会在视图中看到默认设置为模型的
Also see this for a more complex example.
[编辑]
我必须开始更好地阅读:)
好的,我们开始吧。
最简单的方法是通过
【讨论】:
只需将其包装在一个表格中,就像已经提供的那样:
@using(Html.BeginForm()) {
@Html.Textbox("Name")
<input value="Envoyer" type="submit">
}
然后在您的控制器操作中简单地声明一个名为 Name 的参数(假设这发生在名为 Index 的视图中):
[HttpPost]
public ActionResult Index(string Name)
{
// do whatever with Name
}
如前所述,使用FormCollection 也是一个完全有效的选择,但在我看来,这更简单、更简洁。
【讨论】: