0

アプリケーションがありMVC3 razorます。フォームを送信してコンテンツをAction変更するとViewModel、新しい値が入力されているのがわかりません。

それについてのトピックがあり、 http://aspnet.codeplex.com/workitem/5089?ProjectName=aspnetMVC2で修正される可能性があると言われました。MVC3

それを行うオプションがあるかどうか、またはポストバックを使用してJavaScriptなしでUIを更新するためのより良い方法(回避策)は何ですか?

アクション:

[HttpPost]
public ActionResult Index(MyViewModel model)
{
    model.Value = "new value"
    return View("Index", model);
}

UI:

@Html.HiddenFor(x => x.Value)

ViewModel:

public class MyViewModel
{
   public string Value { get;set; }
}
4

2 に答える 2

1

投稿された ModelState 値を使用しているようです。

設定した新しい値を使用して ModelState をクリアするModelState.Clear()と、隠しフィールドにあるはずです。

于 2012-12-14T13:38:10.187 に答える
0

あなたはそれを使って行動するべきformですpost

@model MyViewModel

@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
    @Html.HiddenFor(x=>x.Value)
    <input type="submit" value="Submit" />
}

コントローラ

//
public ActionResult Index()
{
    MyViewModel model = new MyViewModel();
    model.Value = "old value";

    return View("Index", model);
}

[HttpPost]
public ActionResult Index(MyViewModel model)
{
    //get posted model values (changed value by view "new value")
    string changed_value = model.Value;

    // you can return model again if your model.State is false or after update
    return View("Index", model);
}
于 2012-12-14T13:36:26.933 に答える