2

Razor ビュー エンジン内でイメージ タグを作成するための新しい html ヘルパー メソッドを作成しました。

    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' は現在のコンテキストに存在しません

かみそりビュー内でオプションのパラメーターを使用するための正しい構文は何ですか?

4

1 に答える 1

6

You are not using a valid C# syntax. Use : instead of = to specify the value of an optional argument:

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

Further reading: Named and Optional Arguments (C# Programming Guide)

于 2012-05-22T15:56:00.343 に答える