我尝试在cshtml文件中的App_Code中创建一个Helper。
// Using's are needed to ensure helpers function correctly.
@using System.Web.Mvc;
@using System.Web.Mvc.Html;
@using System.Web.Mvc.Routing;
@using System.Web.Mvc.Razor;
@functions {
private static WebViewPage page { get { return PageContext.Page as WebViewPage; } }
private static System.Web.Mvc.HtmlHelper<dynamic> html { get { return page.Html; } }
private static UrlHelper url { get { return page.Url; } }
private static dynamic viewBag { get { return page.ViewBag; } }
}
@helper HelperName(Func<dynamic, dynamic> expression)
{
<div class="form-group">
@Html.LabelFor(model => expression, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.EditorFor(model => expression, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => expression)
</div>
</div>
}
我不知道这是否可行。我有一些错误:
@Html不知道LabelFor,但我把使用放在最上面
可能Func as参数错误
答案 0 :(得分:0)
不,这是不可能的。您可以使用@Html.LabelFor
编写一个普通的HTML帮助器,因为您的视图是强类型的。键入的@Html.LabelFor
将为您生成标签。这通常只是属性名称,但对于复杂类型的属性,它允许您使用编译时检查。
你可以做一些事情,比如this回答。