我使用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);
}
是否可以创建一些代码来执行上述代码?
谢谢,
答案 0 :(得分:0)
没有必要。该模型始终可用,因此您始终可以执行此操作:
<%
using(Html.BeginForm())
{
Html.TextBox('txt1', Model.Property1);
}
%>
页面上的Model属性始终键入(假设您使用的是System.Web.Mvc.ViewPage<T>
),因此始终可以直接通过模型访问属性属性。
如果您没有使用通用版本(System.Web.Mvc.ViewPage<T>
),那么您应该使用它而不是非通用版本。