是否可以通过其他类设置泛型类型?

时间:2009-12-29 23:15:30

标签: asp.net asp.net-mvc c#-4.0

我使用ASP.NET MVC来提供Web应用程序,我想创建类似下面的代码。

<% using(HTML.Form(Model)) { %>
<%     HTML.CreateTextBox('txt1', x => x.Property1);
<% }

从上面的代码中,Form扩展方法将接收表示当前View页面中当前Model对象类型的对象。接下来,CreateTextBox方法将从Form方法接收类型,我可以将文本框绑定到此模型的某些属性。

更新1

以下代码是CreateTextBox方法的代码,它将创建TextBox类的实例。

public static CreateTextBox(string value, Expression<Func<object>> bindedProperty)
{
    // T should be receive from HTML.Form method or class
    return new TextBox<T>(value);
}

是否可以创建一些代码来执行上述代码?

谢谢,

1 个答案:

答案 0 :(得分:0)

没有必要。该模型始终可用,因此您始终可以执行此操作:

<% 
using(Html.BeginForm()) 
{
    Html.TextBox('txt1', Model.Property1);
} 
%>

页面上的Model属性始终键入(假设您使用的是System.Web.Mvc.ViewPage<T>),因此始终可以直接通过模型访问属性属性。

如果您没有使用通用版本(System.Web.Mvc.ViewPage<T>),那么您应该使用它而不是非通用版本。