Asp.net mvc mvc c#return view()未默认为正确的值
我不确定我是否忽略了一些显而易见的东西。 一旦我写了一篇文章,我就有了以下内容(注意:我试图做的是用一些空值默认同一个视图,以便用户可以创建另一个条目): 奇怪的是,当我看到IsValid()中model的值时 我确实看到了空值。 但是当它显示在视图上时,它不是空的。这与我第一次输入数据时的视图基本相同。有什么想法吗?我忽略了什么吗Asp.net mvc mvc c#return view()未默认为正确的值,asp.net-mvc,Asp.net Mvc,我不确定我是否忽略了一些显而易见的东西。 一旦我写了一篇文章,我就有了以下内容(注意:我试图做的是用一些空值默认同一个视图,以便用户可以创建另一个条目): 奇怪的是,当我看到IsValid()中model的值时 我确实看到了空值。 但是当它显示在视图上时,它不是空的。这与我第一次输入数据时的视图基本相同。有什么想法吗?我忽略了什么吗 还要注意我是如何两次执行返回视图(模型)的。在我只做一次而不重复的情况下,有没有其他方法可以做到这一点 如果模型无效,您将返回相同的模型,即第二次返回 第一个返回视
还要注意我是如何两次执行返回视图(模型)的。在我只做一次而不重复的情况下,有没有其他方法可以做到这一点 如果模型无效,您将返回相同的模型,即第二次返回
第一个
返回视图(模型)
根本不需要,因为它和第二个视图之间没有代码,所以它无论如何都会调用。也就是说,删除第一个返回,逻辑是相同的。这是因为HTML帮助程序在绑定其值时首先查看ModelState,然后才查看模型中的值。这是故意的
因此,如果要在POST操作中更改模型的任何值,需要首先将其从ModelState中删除:
[HttpPost]
public ActionResult QkInsert(ProgInfo model)
{
if (ModelState.IsValid)
{
ProgService.InsertQuickEntry(model);
ModelState.Remove("Name");
ModelState.Remove("Address");
ModelState.Remove("Phone");
model.Name = null;
model.Address = null;
model.Phone = null;
return view(model);
}
....
}
现在,视图将呈现修改后的值。您不需要if语句中的返回值。不知道您是谁-1,但提示为+1:)@多夫-谢谢,但问题是它是一个有效的模型,而且它仍然返回相同的模型,尽管我说它要使某些值为null
return view(model)
[HttpPost]
public ActionResult QkInsert(ProgInfo model)
{
if (ModelState.IsValid)
{
ProgService.InsertQuickEntry(model);
ModelState.Remove("Name");
ModelState.Remove("Address");
ModelState.Remove("Phone");
model.Name = null;
model.Address = null;
model.Phone = null;
return view(model);
}
....
}