0

为什么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" />    
}
4

2 回答 2

2

添加

@Html.HiddenFor(m => m.TextFromDb)

在你的表格里面。这将允许 mvc 的模型绑定...等待它...将值绑定到模型并随后在 post 操作呈现视图时显示它。

于 2013-01-02T19:03:32.057 回答
1

这是因为您永远不会将该文本保存在任何地方。只有浏览器回传到服务器的东西(即输入)才能被模型绑定器自动加载。

在您的帖子处理程序中再次从数据库中获取文本。

于 2013-01-02T18:57:22.197 回答