[asp.net-mvc]MvcHtml 帮助器部分的标记

标签: Asp.net-MVC HTML C#
发布时间: 2017/2/20 22:18:11
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有这个︰

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

解决方法 1:

您可以创建 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")">
官方微信
官方QQ群
31647020