视图模型中的标签在提交后消失

本文关键字:提交 消失 标签 模型 视图 | 更新日期: 2023-09-27 17:50:38

为什么提交后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);
    }

My view model:

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" />    
}

视图模型中的标签在提交后消失

添加

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

在您的表单中。这将允许mvc的模型绑定到…等等……将值绑定到模型,然后在post操作呈现视图时显示它。

这是因为您从未将该文本保存在任何地方。只有浏览器发送回服务器的内容(即输入)才能被模型绑定器自动加载。

在post处理程序中再次从DB中获取文本