非常基本的型号:
public class Person
{
public string Name;
public int Age;
}
和非常简单的观点:
@model DynWebPOC.Models.Person
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
Hello, @Model.Name
<br/>
You're getting old at @Model.Age years old now!
@using(Html.BeginForm("Index","Test",FormMethod.Post))
{
<fieldset>
<label for="name" style="color: whitesmoke">Name:</label>
@Html.TextBoxFor(m => m.Name)
<br/>
<label for="age" style="color: whitesmoke">Age:</label>
@Html.TextBoxFor(m => m.Age)
<br/>
<input type="submit" value="Submit"/>
</fieldset>
}
还有一个非常简单的控制器:
public class TestController : Controller
{
[HttpGet]
public ActionResult Index()
{
object model = new Person {Name = "foo", Age = 44};
return View(model);
}
[HttpPost]
public ActionResult Index(Person person)
{
return View();
}
}
当屏幕加载时,这些值会正确绑定到页面。但是当我按下提交按钮时,人员对象的年龄和姓名都为空值。
因为我使用了 Html.TextBoxFor,它不应该正确设置所有绑定并且对象应该自动绑定回 POST 吗?它在 GET 中绑定得很好。
我是否错过了对 Html.BeginForm() 的调用中的某些内容?