【问题标题】:How do you call a helper method with optional parameters from within a Razor View?如何从 Razor 视图中调用带有可选参数的辅助方法?
【发布时间】:2012-05-29 03:41:16
【问题描述】:

我创建了一个新的 html 辅助方法,用于在 razor 视图引擎中创建图像标签:

    public static MvcHtmlString Image(this HtmlHelper helper, string fileName, string altText, 
        string cssClass = null, string id = null, string style = null)
    {
        var server = HttpContext.Current.Server;
        string location = server.MapPath("~/Content/Images/" + fileName);
        var builder = new TagBuilder("img");
        builder.Attributes["src"] = location;
        builder.Attributes["alt"] = altText;

        if (!string.IsNullOrEmpty(cssClass))    builder.Attributes["class"] = cssClass;
        if (!string.IsNullOrEmpty(id))          builder.Attributes["id"] = id;
        if (!string.IsNullOrEmpty(style))       builder.Attributes["style"] = style;

        string tag = builder.ToString(TagRenderMode.SelfClosing);
        return new MvcHtmlString(tag);
    }

我认为该方法可能有效,但调用它时遇到问题。在我看来,我有:

@Html.Image("getstarted-promo.jpg", "Get Started", style = "width: 445; height: 257;")

当视图加载时,我得到这个编译器错误:

CS0103:当前上下文中不存在名称“style”

在剃刀视图中使用可选参数的正确语法是什么?

【问题讨论】:

    标签: c# asp.net-mvc-3 razor optional-parameters


    【解决方案1】:

    您没有使用有效的 C# 语法。使用: 而不是= 来指定可选参数的值:

    @Html.Image("getstarted-promo.jpg", "Get Started", style: "width: 445; height: 257;")
    

    延伸阅读:Named and Optional Arguments (C# Programming Guide)

    【讨论】:

      猜你喜欢
      • 2013-03-25
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-19
      • 1970-01-01
      • 2011-08-03
      相关资源
      最近更新 更多