我有一个问题。
我需要在C#和MVC3
中将一个值传递给控制器,但我不知道如何操作。
我的视图代码如下:
@html.textbox("Name");
<input value="Envoyer" type="submit">
请问如何将name
的值传递给我的控制器?谢谢。
我有一个问题。
我需要在C#和MVC3
中将一个值传递给控制器,但我不知道如何操作。
我的视图代码如下:
@html.textbox("Name");
<input value="Envoyer" type="submit">
请问如何将name
的值传递给我的控制器?谢谢。
[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"];
}
<%= Model %>
在MVC 3中,你会发现默认情况下在你的视图中将<dynamic>设置为模型。只需从控制器向视图传递一个字符串作为对象(return View((object)"Name");)。
[编辑]
我得开始认真阅读 :)
好的,我们开始吧。
最简单的方法是通过<form>。任何输入元素都会被提交到您的控制器,其中'name'属性将是变量名(参数)。
例如:
<form action="/Contact/SendMessage" method="post">
<table>
<tr>
<th>Your e-mail adres:</th>
<td class="inputCell">
<input id="txtEmail" name="Email" type="text" value="<%= Model %>" />
</td>
</tr>
<tr>
<td colspan="2">
<textarea name="Message" rows="10" style="width: 450px;"></textarea>
</td>
</tr>
<tr>
<th colspan="2" style="text-align: right;"><input type="submit" id="SendButton" value="Send Message" /></th>
</tr>
</table>
</form>
在控制器上,您可以编写以下函数:
[AcceptVerbs(HttpVerbs.Post)]
public RedirectResult SendMessage(String Email, String Message)
{
}
@using(Html.BeginForm()) {
@Html.Textbox("Name")
<input value="Envoyer" type="submit">
}
然后在控制器动作中,只需声明一个名为Name
的参数(假设这是在名为Index
的视图中发生的):
[HttpPost]
public ActionResult Index(string Name)
{
// do whatever with Name
}
正如已经提到的那样,使用FormCollection
也是一个完全有效的选项,但在我看来,这种方法更加简单、更加清晰。