2016-08-12 33 views
1

我剛剛使用MVC 5和.NET框架4.5,但遇到了問題。我有一個表單,並且我想在出錯時重置表單的字段,但保留錯誤並顯示給用戶。目前我可以清除錯誤的字段,但這也可以消除錯誤。我曾嘗試過清理表單時保存錯誤(MVC)

originalModel.field= ""; 

但是這並不清除該字段。我也試過只用

ModelState.Clear(); 

但是這也沒有做任何事情。

這就是我目前正與(它清除一切):

if (!ModelState.IsValid) 
{ 
    TestModel blank= new TestModel(); 
    ModelState.Clear(); 
    return View("View.cshtml", blank); 
} 
+0

一般來說,處理表單和驗證錯誤的首選方法是將數據保持機智並顯示錯誤。讓用戶更新發生驗證錯誤的字段的數據。 – Igor

回答

1

如果你絕對需要這種行爲,你可以去設置您的視圖模型的這個屬性的空字符串值在ModelState字典中。

[HttpPost] 
public virtual ActionResult Index(CreatePostVm model) 
{ 
    if (ModelState.IsValid == false) 
    { 
    ModelState["PostTitle"].Value = 
      new ValueProviderResult(string.Empty, string.Empty,CultureInfo.InvariantCulture); 

    return View(model); 
    } 
    // to do : Return something 
} 

上面的代碼將您CreatePostVm視圖模型的PostTitle屬性設置爲一個空的文本。因此,在您的視圖中,輸入字段將爲空文本,但仍顯示PostTitle字段的驗證錯誤消息。