我一直在玩ASP.NET MVC并碰到了一些我无法弄清楚的东西.
假设我有一个这样的对象:
public class TestObject
{
public string Name { get; set; }
public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和这样的视图页面(Create.aspx):
<form action="/Create" method="post">
<p>
<%=Html.TextBox("Name") %>
</p>
<p>
<%=Html.TextBox("Age")%>
</p>
</form>
Run Code Online (Sandbox Code Playgroud)
在我的控制器上我有这些动作:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Create()
{
return View(new TestObject { Name = "DefaultName", Age = 10 } );
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(TestObject o)
{
o.Name = "ChangedNameToSomethingElse";
o.Age = 15;
return View(o);
}
Run Code Online (Sandbox Code Playgroud)
该Html.TextBox()方法始终使用默认值生成文本框,即使在回发之后,对象也会在其值上传递回不同的属性.现在,被授予,我想不出一个真实世界的例子,为什么我想要做这样的事情,但我仍然不明白为什么我总是最终填充文本框填充了在Create操作上设置的模型的值与AcceptVerbs(HttpVerbs.Get)属性.
注意:我已经尝试Html.TextBox("Name", Model.Name)但结果仍然相同.我AcceptVerbs(HttpVerbs.Post)通过ViewData将值传递给View,验证了实际运行的Create操作.此外,当我输出值时,显示更新的值, …
asp.net-mvc ×1