2012-11-27 35 views
1

我有不同的值的形式,由用戶輸入,那麼用戶發送查詢並處理結果的搜索。模式或方式導致

這很簡單,但問題是這樣。

在MVC中如果表單有錯誤,要在服務器上進行驗證,應該再次顯示錯誤的表單。但是如果我將請求發送到數據搜索操作,我應該回到重定向到諮詢操作表單,這會丟失驗證消息。

目前我們要做的就是請求數據,以協商形式的行動,然後如果一切都很好,我們重定向操作結果傳送與TempData的請求中的數據。

這種情況下有沒有更好的方法?

回答

0

在回報View(model)驗證錯誤或RedirectToAction()取決於ModelState中:

ActionResult Consult(@params) { 
    if (ModelState.IsValid) { 
     //validation succeeded. 
     return RedirectToAction("SearchResults", {searchParams = @params}); 
    } 

    return View(@params); 
} 

的一點是,你可以重定向時傳遞參數。

+0

好了,這說明什麼,我們現在正在做的,問題是,是否有任何圖案或不同的模式來這樣做,因爲我們不喜歡用相同的URL諮詢 –

+0

基本上做重定向或顯示結果,你有一個非標準的場景,因爲通常搜索的形式(或形式收集搜索PARAMS)是在同一個頁面(視圖)的結果上。在這種情況下,您可以同時返回驗證異常或搜索結果(或兩者)。但既然你有這種特殊情況,你必須處理好你所擁有的。 – Tengiz