如何在MVC3中提交数据库中的数据后清除模型



我在数据库中提交一些数据,提交后我想显示相同的页面。但是我正在查看文本框值不为空的页面。

ModelState.Clear((;

我曾经清除过文本框。

但文本框值仍然存在。 请建议我在 MVC3 中提交后清除模型。

public ActionResult AddNewCategory(CategoryViewModel model) {
  if (ModelState.IsValid) {
    int result = 0;
    var categoryEntity = new Category {
      CategoryName = model.CategoryName, CategorySlug = model.CategorySlug
    };
    result = Convert.ToInt32(_categoryRepository.AddNewCategory(categoryEntity));
    if (result > 0) {
      ModelState.Clear();
    }
  }
  return View(model);
}

您得到的是相同的模型,因为您将其传递给视图View(model)。您在这里有几个选项:传递空模型,或重定向到发布操作的 get 变体。

1(

   if (ModelState.IsValid) 
   { 
      //saving
      if (result > 0) 
      {
         ModelState.Clear();
         return View(new CategoryViewModel()); 
      }          
   } 

2(

   if (ModelState.IsValid) 
   { 
      //saving
       if (result > 0) 
       {   
           return RedirectToAction("AddNewCategory");
       }
   }

PS:我强烈建议使用第二种方法,因为您可能希望进行其他数据库调用来构建模型,并且您不希望在多个地方执行此操作。

以最简单的方式尝试一下

if(ModelState.IsValid)
{
//code here to save data to database
db.SaveChanges();
ModelState.Clear();
}
return view(new CategoryViewModel());

Hear is do modelState.Clear((

ModelState.Clear(( 用于清除错误,但也用于 强制 MVC 引擎重新生成要传递给视图的模型。

因此,就像您的情况一样@Vsevolod Goloviznin建议您可以使用:

return View(new CategoryViewModel());

具有空值的视图

最新更新