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 のモデル バインディングが可能になります... それを待つ... 値をモデルにバインドし、その後、ポスト アクションがビューをレンダリングするときにそれを表示します。

于 2013-01-02T19:03:32.057 に答える
1

そのテキストをどこにも保存しないからです。モデル バインダーが自動的にロードできるのは、ブラウザがサーバーにポスト バックするもの (入力など) だけです。

ポスト ハンドラーで DB からテキストを再度フェッチします。

于 2013-01-02T18:57:22.197 に答える