我有一个绑定到字符串的 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 字符串作为值发送到控制器......我不确定此时该做什么。谢谢!