【问题标题】:How to Update the View, when ViewModel Changes in Controller [duplicate]当控制器中的 ViewModel 更改时如何更新视图 [重复]
【发布时间】:2016-02-04 16:56:54
【问题描述】:

我是 MVC 新手,有一个简单的问题。

这是我的看法:

@model EditWorkflowViewModel

@Html.TextBoxFor(m => m.Test, new { id = "txtbTest", @class = "form-control"})

<button class="btn btn-success" id="btnOk"><i class="fa fa-floppy-o"></i> Ok</button>

这是我的控制器动作:

[HttpPost]
public ActionResult Edit(EditWorkflowViewModel viewModel)
{
    //... Code to persist the viewModel Data...

    viewModel.Test = "changed";

    if (Request.IsAjaxRequest())
        return PartialView("_Edit", viewModel);
    return View("_Edit", viewModel);
}

为什么在 Action 执行后 TextBox 没有被“更改”的文本更新,在这种情况下如何更新视图?

感谢您的帮助

【问题讨论】:

  • 因为 html 帮助程序使用来自 ModelState 的值,而不是您的模型属性(如果它们存在)。因为你的方法有一个模型参数,它的属性值被DefaultModelBinder添加到ModelState(更详细的解释请参考this answer

标签: c# asp.net-mvc asp.net-mvc-4


【解决方案1】:

感谢斯蒂芬的回答。

此问题的行为和解决方案在链接中,由 Stephen 发布:

TextBoxFor displaying initial value, not the value updated from code

【讨论】:

    猜你喜欢
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多