2014-12-04 80 views
0

我有一個CustomValidator檢查回發一些東西 - 它不能做客戶端。Asp.NET檢查是否有效客戶端後回發

我的所有驗證器都是隱藏的,因爲樣式很難看,而且在這種特殊驗證器失敗的罕見情況下,我想在頁面重新加載時觸發一個不錯的引導彈出窗口。

目前,頁面只是重新加載,沒有跡象表明它爲什麼沒有進入嚮導的下一步。

什麼是我可以檢測頁面加載後驗證器是成功還是失敗的最佳方式?

我在考慮只使用HiddenField,如果驗證器無效,請設置該值。這似乎是應該已經存在的東西的解決方法。

回答

-1

您可以在視圖中添加錯誤的System.Web.Mvc.ModelState

public ActionResult Index(MyViewModel model) 
{ 
    if(validation test fails){ 
     ModelState.AddModelError("key","My custom validation failed!"); 
     //where key is a property of the model 
     return View(); //a @Html.ValidationSummary() in your view will display the error message for you 
    } 

    if(ModelState.IsValid){ //this if condition is not required since I return on error in my example but just in case you need for your code it will not be valid since you called ModelState.AddModelError 
     //validation passed 
     //do more work 
    } 

    //and just in case you needed to manually flush the ModelState of your custom validation 
    ModelState["key"].Errors.Clear(); 
    } 

然後:

@if (!ViewData.ModelState.IsValid) 
    { 
     <script> 
      $(function() { 
       $('#modalCustomErrorId').modal('show'); 
      }); 
     </script> 
    } 
+0

我使用Asp.NET的WebForms ......我有限的理解是,我不能合併與Mvc。我錯了嗎? – dfoverdx 2014-12-05 19:10:05

+1

是的,你是正確的,從某種意義上說,你可以在同一個項目中完成Web窗體和MVC,但不能對.aspx使用MVC類型驗證。所以不,你不能使用我提供的解決方案 – 2014-12-05 21:20:39

相關問題