程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 為視圖自定義輔助方法(上)

為視圖自定義輔助方法(上)

編輯:關於ASP.NET

在編寫ASP.NET MVC應用程序時,只依賴內置的視圖輔助方法很難達到很高的生產力,即使是定義在MvcFutures中的補充類庫,也很難滿足項目的具體需求。此外,不同的項目有不同的特點,在很多時候也需要定義較為特殊的輔助方法,使開發人員能夠更快,更方便地寫出更容易維護的代碼。這也是自定義視圖輔助方法最主要的目的(沒有之一)。而這次的文章,便是給出一個這方面的示例,可作為此類問題的一個參考。

預備

在編寫客戶端HTML時,進行客戶端驗證是最常見的工作之一。既然ASP.NET MVC集成了jQuery類庫,那麼我們不妨基於jQuery的Validate插件編寫這部分功能。假設有如下表單:

<form method="post" action="" id="form">
   <p>
     <span>Name: </span> <!-- 必填 -->
     <input type="text" name="user.Name" />
   </p>
   <p>
     <span>Age: </span> <!-- 必填,15到28之間的數字 -->
     <input type="text" name="user.Age" />
   </p>
   <p>
     <span>Email:</span> <!-- 必填,且為合法Email -->
     <input type="text" name="user.Email" />
   </p>
   <input type="submit" value="Submit" />
</form>

如果使用JQuery Validate插件進行客戶端校驗,那麼我們可以編寫如下代碼:

<script language="javascript" type="text/javascript">
   $("#form").validate({
     "rules": {
       "user.Name": { "required": true },
       "user.Age": {
         "required": true,
         "number": true,
         "range": [15, 28]
       },
       "user.Email": {
         "required": true,
         "email": true
       }
     },
     "messages": {
       "user.Name": { "required": "please provide your name!!!" },
       "user.Email": {
         "required": "email please...",
         "email": "valid email please..."
       }
     }, "onkeyup": false
   });
</script>

以上這段腳本的作用便是告訴jQuery校驗哪個表單,對表單中的各個元素分別采取哪種校驗方式,以及在發生錯誤的時候該提示什麼信息(詳細內容可查閱文檔)。這裡可能需要補充一段題外話。實際上jQuery.Validate非常靈活,可以有各種方式提供校驗信息,例如直接為html元素加特殊標記。不過老趙認為那些方法的trick意味太濃,且不容易編寫輔助方法協助開發,因此刻意忽略那些方式。

這樣的結果可能會招一些前台開發人員歡喜,不過老趙覺得,至少有三個地方需要提高:

數據分散,提高維護難度。例如HTML元素和校驗規則分離,校驗規則

對於開發人員來說,編寫JSON較不方便,容易發生錯誤。

缺少對於“自動校驗”的支持,需要完全手寫。

而我們編寫的輔助方法,主要就是面向前兩點,而最後一點可以說是自然而然的事情。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved