我有这个:
public static class CustomHelpers
{
public static MvcHtmlString ImageTag(this HtmlHelper html, Size s, string fName)
{
var fPath = "";
//some other code to generate path ...
var imgTag = new TagBuilder("img");
imgTag.Attributes.Add("src", "~/Images/" + s.Width + "/" + s.Height + "/" + fName);
return new MvcHtmlString(imgTag.ToString());
}
}
标记中的:
@Html.ImageTag(new System.Drawing.Size(100,100),"test.jpg")
生成这个:
<img src="~/Images/100/100/test2.jpg">
我想要这样的事情:
<img src="@getImagePath(size(100,100),"test.jpg")">
为了html标签,设计师可以访问属性,但是如何?
更新 其实我想要一个生成图像路径的方法,它依赖于动态的大小。但标签可供我的设计师访问。 一个沉闷是为帮助者创造一些重载以获得更多属性
public static MvcHtmlString ImageTag(this HtmlHelper html, Size s, string fName,**string cssClass**){}
答案 0 :(得分:0)
您可以为UrlHelper类创建扩展方法:
public static string GetImageUrl(this UrlHelper urlHelper, Size s, string fName)
{
return urlHelper.Content("~/Images/" + s.Width + "/" + s.Height + "/" + fName);
}
然后在您的视图中使用它:
<img src="@Url.GetImageUrl(new Size(100,100),"test.jpg")">
答案 1 :(得分:0)
你想渲染这个吗?
<img src="@getImagePath(size(100,100),"test.jpg")">
尝试:
imgTag.Attributes.Add("src", "@getImagePath(size(" + s.Width + "," + s.Height + "),\"" + fName+"\")");