为什么提交后TextFromDb
标签会消失?我如何解决它?我发现在帖子上它不在VM中。
控制器:
public ActionResult Index()
{
var vm = new TestLabelVM();
vm.TextFromDb = "Text from database";
return View(vm);
}
[HttpPost]
public ActionResult Index(TestLabelVM vm)
{
SaveToDb(vm.TextOpinion);
return View(vm);
}
我的观点模型:
public class TestLabelVM
{
public string TextFromDb { get; set; }
public string TextOpinion { get; set; }
}
我的网页Index.cshtml
:
@model TestLabelVM
@using (Html.BeginForm("Index", "TestLabel"))
{
@Html.EditorFor(m => m.TextOpinion)
<br/>
@Model.TextFromDb
<br/>
<input type="submit" />
}
答案 0 :(得分:1)
这是因为您从未在任何地方保存该文字。只有浏览器回发到服务器的内容(即输入)才能由模型绑定器自动加载。
在帖子处理程序中再次从DB中获取文本。
答案 1 :(得分:1)
添加
@Html.HiddenFor(m => m.TextFromDb)
在表单内。这将允许mvc的模型绑定到...等待它...将值绑定到模型,然后在post动作呈现视图时显示它。