2010-04-22 67 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" } %>