Asp.Net MVC對類HtmlHelper的自訂擴充方法以及如何調用

來源:互聯網
上載者:User

c# 擴充方法出來已久,介紹擴充方法的文章也很多,此處就不多介紹,如有不懂當然可以百度,google一下,園子當中也有超級多的講解。

大家可以看到這是微軟MVC中內建的針對TextBoxFor的三個重載方法。那麼我們還可以針對TextBoxFor進行我們自訂的擴充(想要什麼樣式,只要我們能實現),那麼在調用時就方便多了。

那麼現在自己實現一個吧。

        public static MvcHtmlString TextBoxFor<TModel>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, DateTime>> expression)        {            return htmlHelper.TextBoxFor(expression, new { @class = "date" });        }

那麼可以看到這個強型別的文本在與Model綁定的時候會選擇性的針對日期類型的欄位進行綁定。它不會與系統內建的衝突,因為他們雖然方法名一樣,但是參數類型不太一樣,這個在自己擴充的時候注意一下就可以了。
我們調用一下試試

看之前的三個重載現在變成了四個,而且的這個正好是我們自訂擴充的。

當然我們調用之前應該要引用的,這裡提供三種方法進行引用:

第一種:在相對應的視圖View中進行頁面引用即可 @using 命名空間

第二種:可以在web.config中進行配置,那麼就不需要在視圖中進行引用

<configuration>     <system.web>         <pages>             <namespaces>                 <add namespace="命名空間名稱"/>             </namespaces>         </pages>     </system.web> </configuration>

第三種:看一下架構中內建的方法所在命名空間System.Web.Mvc.Html,然後將我們自訂擴充方法的命名空間也更改成這個那麼就即不用配置也不用引用了。
當然或許還有其他的方法了。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.