繁体   English   中英

在App_Code中使用@HTML的ASP.NET MVC Razor Helper

[英]ASP.NET MVC Razor Helper with @HTML in App_Code

我尝试在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作为参数是错误的

不,这是不可能的。 您可以使用@Html.LabelFor编写一个普通的HTML帮助器,因为您的视图是强类型的。键入的@Html.LabelFor将为您生成标签。 这通常只是属性名称,但对于复杂类型的属性,它允许您使用编译时检查。

你可以做一些像这样的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM