2
我有一个ASP.NET Razor视图绑定到字符串。它非常简单:字符串模型,传递值到控制器问题
@model string
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
Hello, @Model
@using(Html.BeginForm())
{
<fieldset>
<label for="name" style="color: whitesmoke">Name:</label>
<input type="text" id="name"/>
<br/>
<input type="submit" value="Submit"/>
</fieldset>
}
和一个简单的控制器:
[HttpGet]
public ActionResult Index()
{
object model = "foo";
return View(model);
}
private string name;
[HttpPost]
public ActionResult Index(string name)
{
return View();
}
当我按下提交按钮,该指数邮政作用的结果触发,但“字符串名称”参数为空。不是Razor智能够从视图中自动将此属性绑定到我的控制器,因为输入ID与控制器上的参数名称相匹配?如果不是,我该如何绑定这个?我知道模型的属性我可以使用Html.HiddenFor(m => m.Foo),但由于没有属性,我不知道如何正确调用此方法..我可以正确设置它调用Html.Hidden (“name”,“foo”),但我不知道如何在这里传递值。我知道我可以使用jQuery调用,如:
@Html.Hidden("name", "$('input[id=name]').val())");
字面上发送jQuery的字符串到控制器的价值......我不知道在这一点上做的。谢谢!
哇...谢谢!那么使用Html.Hidden()的东西有什么意义呢?它主要用于非POD数据类型,还是有任何意义? – dferraro
@dferraro,我想你的意思不仅是'Html.Hidden()',而是html helper。它们帮助您通过生成HTML并将结果作为字符串返回来创建HTML控件。如果你真的想知道html助手的所有好处,你最好问一个新的问题。 – Zabavsky