部分标签的Mvc Html Helper

时间:2014-05-23 19:01:56

标签: c# html asp.net-mvc html-helper

我有这个:

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**){}

2 个答案:

答案 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+"\")");
相关问题