我有问题。如何将价值从视图传递到控制器
我需要将C# and MVC3
中的值传递给控制器,但我不知道如何。
在我看来的代码是:
@html.textbox("Name");
<input value="Envoyer" type="submit">
我怎样才能得到的name
值到我的控制器,好吗?
感谢
我有问题。如何将价值从视图传递到控制器
我需要将C# and MVC3
中的值传递给控制器,但我不知道如何。
在我看来的代码是:
@html.textbox("Name");
<input value="Envoyer" type="submit">
我怎样才能得到的name
值到我的控制器,好吗?
感谢
还有另一种方法。
[HttpPost]
public ActionResult Index() {
string name = Request["name"];
}
<%=型号%>
在MVC 3,您在默认情况下在您的视图中看到的<动态>设定为模型。只需将字符串作为对象传递给视图(从您的控制器返回视图((对象)“名称”);)。
Also see this for a more complex example.
[编辑]
我得开始读更好:)
好了,我们开始吧。
最简单的方法是通过<表格>。任何输入元素都会发布到您的控制器,其中“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("MethodName", "Home", FormMethod.Post)) {%>
<% Html.Textbox("Name") %>
<input value="Envoyer" type="submit" />
<% } %>
[HttpPost]
public ActionResult MethodName(FormCollection col)
{
string name = col["Name"];
}
只是包装在一个形式,因为已经提供:
@using(Html.BeginForm()) {
@Html.Textbox("Name")
<input value="Envoyer" type="submit">
}
然后在你的控制器动作简单地声明名称为Name
参数(假设这在一个名为观点正在发生的事情Index
):
[HttpPost]
public ActionResult Index(string Name)
{
// do whatever with Name
}
使用FormCollection
正如人们所说的也是一个非常有效的选择,但是这是更容易,有点干净呃,在我看来。
我可以从@ html.textbox得到这个(“Name”); ?真的吗? – Steffi 2011-04-07 19:28:08
@Steffi应该工作。试一试。 – tugberk 2011-04-07 19:31:32
@steffi在这里,你会看到我的一个样本:http://forums.asp.net/t/1669915.aspx/1?Simple+search+page – tugberk 2011-04-07 19:32:06