Asp.net mvc 在回发时更改数据后,如何用新值填充HTML内容?
我有Asp.net mvc 在回发时更改数据后,如何用新值填充HTML内容?,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-viewmodel,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc Viewmodel,我有MVC3剃须刀应用程序。一旦我提交表单并在Action中更改ViewModel内容,我就看不到填充的新值 在MVC2中有一个关于这一点的主题,在MVC3 您能告诉我们是否有这样做的选项,或者在不使用JavaScript的情况下使用回发更新UI的更好方法(解决方法)是什么吗 行动: [HttpPost] public ActionResult Index(MyViewModel model) { model.Value = "new value" return View("I
MVC3剃须刀
应用程序。一旦我提交表单并在Action
中更改ViewModel
内容,我就看不到填充的新值
在MVC2
中有一个关于这一点的主题,在MVC3
您能告诉我们是否有这样做的选项,或者在不使用JavaScript的情况下使用回发更新UI的更好方法(解决方法)是什么吗
行动:
[HttpPost]
public ActionResult Index(MyViewModel model)
{
model.Value = "new value"
return View("Index", model);
}
用户界面:
视图模型:
public class MyViewModel
{
public string Value { get;set; }
}
您应该使用
表单
并将其发布到操作中
@model MyViewModel
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.HiddenFor(x=>x.Value)
<input type="submit" value="Submit" />
}
看起来它使用的是发布的ModelState值
如果使用ModelState.clear()
清除ModelState,则设置的新值应位于隐藏字段中
@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);
}