2014-02-19 83 views
0

我有一個要求,保持和顯示視圖上的不正確的條目。如果未通過所有驗證,則無法進入下一頁。保留失敗的驗證數據

例如,使用必須以特定格式在文本字段中輸入日期。目前,如果模型綁定失敗,它不會保留無效的日期文本條目。我想保留並用釩失敗的信息將其顯示回給用戶。

我想知道這是否可以實現而不創建暫時保存輸入遊戲和解析值的數據持有者類型。

+0

我採取了一種「持有人」類型的對象,包裹有關對象。例如,持有輸入值的日期持有者。還使用自定義模型綁定器。 – TheRenoRanger

回答

2

是的,這是可能的。因爲你沒有發佈任何代碼,我只是給你一個例子,說明如何使用服務器端驗證來實現這一點。

以下是[HttpGet]操作方法,提供允許用戶輸入數據的表單。

[HttpGet] 
public ActionResult Create() 
{ 
    // The CreateViewModel holds the properties and data annotations for the form 
    CreateViewModel model = new CreateViewModel(); 
    return View(model); 
} 

以下是接收並驗證表單的[HttpPost]操作方法。

[HttpPost] 
public ActionResult Create(CreateViewModel model) 
{ 
    if (!ModelState.IsValid) 
    { 
     return Create(); // This will return the form with the invalid data 
    } 

    // Data is valid, process the form and redirect to whichever action method you want 

    return RedirectToAction("Index"); 
} 

,您還可以在[HttpPost]操作方法,而不是return Create();使用return View(model);

+0

謝謝你。讓我們來特別說一下日期字段,如果它不是一個有效日期,那麼它不會正確綁定?因此日期值將爲空? – TheRenoRanger

+0

無效日期不會綁定到模型上的DateTime屬性,但當視圖返回給用戶時,會顯示在表單域中輸入的無效數據。 – HTX9