C# 如何从Razor视图中调用带有可选参数的helper方法?
我创建了一个新的html助手方法,用于在razor视图引擎中创建图像标记:C# 如何从Razor视图中调用带有可选参数的helper方法?,c#,asp.net-mvc-3,razor,optional-parameters,C#,Asp.net Mvc 3,Razor,Optional Parameters,我创建了一个新的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.Curren
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:名称“样式”在当前上下文中不存在
在razor视图中使用可选参数的正确语法是什么?您没有使用有效的C#语法。使用
:
而不是=
指定可选参数的值:
@Html.Image("getstarted-promo.jpg", "Get Started", style: "width: 445; height: 257;")
进一步阅读: