这一定是很明显的事情,但对我来说它看起来很奇怪。我有简单的控制器、具有一个属性的模型和显示属性值并呈现该属性的编辑器的视图。当我单击按钮时,会发布表单并将感叹号附加到属性。这个感叹号在我看来是可见的,但只在p
标签中可见,而不是在input
由Html.TextBoxFor()
.
为什么Html.TextBoxFor()
忽略我在后期操作中更新了我的模型?
有没有办法改变这种行为Html.TextBoxFor()
?
看法
@model ModelChangeInPostActionNotVisible.Models.IndexModel
@using (Html.BeginForm())
{
<p>@Model.MyProperty</p>
@Html.TextBoxFor(m => m.MyProperty)
<input type="submit" />
}
模型
namespace ModelChangeInPostActionNotVisible.Models
{
public class IndexModel
{
public string MyProperty { get; set; }
}
}
控制器
namespace ModelChangeInPostActionNotVisible.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new IndexModel { MyProperty = "hi" });
}
[HttpPost]
public ActionResult Index(IndexModel model)
{
model.MyProperty += "!";
return View(model);
}
}
}
点击提交按钮后的 HTML
<form action="/" method="post"> <p>hi!</p>
<input id="MyProperty" name="MyProperty" type="text" value="hi" /> <input type="submit" />
</form>