Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 将修改后的viewModel返回到视图_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 将修改后的viewModel返回到视图

Asp.net mvc 将修改后的viewModel返回到视图,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我想做这样的事情: [HttpPost] public ActionResult Index(Foo foo) { foo.Name = "modified"; return View(foo); } var newVal = new ValueProviderResult("updated value", "updated value", CultureInfo.InvariantCulture); ModelState.SetModelValue("MyFieldName

我想做这样的事情:

[HttpPost]
public ActionResult Index(Foo foo)
{
    foo.Name = "modified";

    return View(foo);
}
var newVal = new ValueProviderResult("updated value", "updated value", CultureInfo.InvariantCulture);
ModelState.SetModelValue("MyFieldName", newVal);
但是,当渲染我的视图时,它始终具有旧值!如何修改和返回?我必须每次都清除ModelState吗


我的看法是:

@model MvcApplication1.Models.Foo


@using (Html.BeginForm())
{
    @Html.TextBoxFor(m => m.Name)
    @Html.TextBoxFor(m => m.Description)

    <input type="submit" value="Send" />
}
@model mvcapapplication1.Models.Foo
@使用(Html.BeginForm())
{
@Html.TextBoxFor(m=>m.Name)
@Html.TextBoxFor(m=>m.Description)
}

我认为这可能是预期的行为,因为将同一模型发送回视图的“正常”场景是当模型出现错误时


请参阅:

MVC在回发时使用ModelState填充视图,而不是传递的模型。要在返回视图之前更新单个字段,请尝试以下操作:

[HttpPost]
public ActionResult Index(Foo foo)
{
    foo.Name = "modified";

    return View(foo);
}
var newVal = new ValueProviderResult("updated value", "updated value", CultureInfo.InvariantCulture);
ModelState.SetModelValue("MyFieldName", newVal);

这里有更多信息:

@Shyju只有在我使用'ModelState.Clear();'时,它才对我有效在设置修改后的属性之前,会发生其他情况。这应该行得通。好吧,我创建了一个新的mvc 3和mvc 4项目,但它不起作用:(微软的文档在最好的时候是密集的,但上面的内容是不可渗透的!我只想在模型中设置一个布尔值,然后在一篇失败的文章后返回它。最终到达了那里,但很痛苦!