2010-04-22 65 views
0

我在做一個自定義模板在我的MVC應用程序,這樣的事情:ASP.NET MVC 2.0中的UIHint參數?

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 
<input type="text" id="date" /> 

而在我的POCO我指的是這樣這樣的ascx文件。

[UIHint("DatePicker")] 
    public DateTime CreatedOn { get; set;} 

所以我想知道我怎麼能在這UIHint,我可以把在UIHint這樣傳遞一個參數:

[UIHint("DatePicker",null,"name","ThisIsTheNameValue")] 
    public DateTime CreatedOn { get; set;} 

而在ASCX文件中檢索它結束本:

<input type="text" name="ThisIsTheNameValue" id="date" /> 

感謝您的時間。

回答

1

UIHint屬性沒有任何可用於此的屬性,也沒有ModelMetadata類具有任何適用的屬性。我唯一的建議是使用HtmlHelper擴展來創建輸入,並讓它從模型屬性中提取名稱。這並不能給你足夠的控制權,但它很簡單。如果這還不夠,您可能需要通過HtmlHelper<T>擴展實現它,該擴展允許您使用自定義屬性定義名稱並使用TagBuilder自己構建輸入,而不是使用模板引擎。

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 
<%= Html.TextBox(string.Empty, Model, new { id = "date" } %>