Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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 ASP.NET MVC的编辑操作验证_Asp.net Mvc - Fatal编程技术网

Asp.net mvc ASP.NET MVC的编辑操作验证

Asp.net mvc ASP.NET MVC的编辑操作验证,asp.net-mvc,Asp.net Mvc,以下代码有效。但问题是当我点击编辑链接编辑一个产品时,所有的文本框都被清除了,但错误消息仍然有效。之所以发生这种情况,是因为选择了强类型视图类,该类包含带有正则表达式的错误消息。该类也用于创建操作。问题是,如果文本保持为空或输入无效数据并且用户试图在这些条件下保存,我希望包含错误消息。如果可能,如何做到这一点。我正在使用VS2010、MVC、ADO.NET [HttpPost] public ActionResult Edit(int id, FormCollection collection,

以下代码有效。但问题是当我点击编辑链接编辑一个产品时,所有的文本框都被清除了,但错误消息仍然有效。之所以发生这种情况,是因为选择了强类型视图类,该类包含带有正则表达式的错误消息。该类也用于创建操作。问题是,如果文本保持为空或输入无效数据并且用户试图在这些条件下保存,我希望包含错误消息。如果可能,如何做到这一点。我正在使用VS2010、MVC、ADO.NET

[HttpPost]
public ActionResult Edit(int id, FormCollection collection, 
                         ProductCategory editCategory)
{
    if (!ModelState.IsValid)
    {
            return View(editCategory);
    }

    var categoryToUpdate = db.ProductCategories.First(m => 
    m.ProductCategoryID == id);
    ViewData.Model = categoryToUpdate;
    TryUpdateModel(categoryToUpdate, new string[] { }, 
    collection.ToValueProvider());
    db.AddToProductCategories(editCategory);
    db.SaveChanges(); 
    return View("/");
}

你需要把你的模型送回去

如果视图名为“编辑”,则只需:

return View(editCategory);

我想出来了。我在编辑操作中编写了错误语法,它正在工作

嗨,是的,它就是这么做的。图像编辑表单中有两个文本框。一个用于类别名称和日期。如果我从类别名称的文本框中删除字符串并将其保留为空。然后从另一个文本框中删除日期。如果我试图保存详细信息,我会收到日期文本框的错误消息,说明需要填写,但另一个框不会显示错误消息。我说得通吗?