Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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 mvc c#return view()未默认为正确的值_Asp.net Mvc - Fatal编程技术网

Asp.net mvc mvc c#return view()未默认为正确的值

Asp.net mvc mvc c#return view()未默认为正确的值,asp.net-mvc,Asp.net Mvc,我不确定我是否忽略了一些显而易见的东西。 一旦我写了一篇文章,我就有了以下内容(注意:我试图做的是用一些空值默认同一个视图,以便用户可以创建另一个条目): 奇怪的是,当我看到IsValid()中model的值时 我确实看到了空值。 但是当它显示在视图上时,它不是空的。这与我第一次输入数据时的视图基本相同。有什么想法吗?我忽略了什么吗 还要注意我是如何两次执行返回视图(模型)的。在我只做一次而不重复的情况下,有没有其他方法可以做到这一点 如果模型无效,您将返回相同的模型,即第二次返回 第一个返回视

我不确定我是否忽略了一些显而易见的东西。 一旦我写了一篇文章,我就有了以下内容(注意:我试图做的是用一些空值默认同一个视图,以便用户可以创建另一个条目):

奇怪的是,当我看到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);
    }

    ....
}