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,然後將我們自訂擴充方法的命名空間也更改成這個那麼就即不用配置也不用引用了。
當然或許還有其他的方法了。