C# 标记部分的MvcHtml帮助程序
我有这个:C# 标记部分的MvcHtml帮助程序,c#,html,asp.net-mvc,html-helper,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 =
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">
您可以为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")">
您正在尝试渲染此内容吗
<img src="@getImagePath(size(100,100),"test.jpg")">
您不能使用Razor生成更多的Razor(当然,您可以,但第二个Razor不会被执行,它只会被写为纯文本)。现在还不清楚你想在这里实现什么。我不想要嵌套的razor,实际上我有一个方法来动态生成我的图像路径。(因为当网页温度改变时,我必须再次更改代码)需要一种方法来获取大小和图像名称,如果它不存在于它的文件夹中,如100/100文件夹,则以该大小生成它?那么,您希望代码动态调整图像大小?那么,为什么要包含大量与MVC相关的无用信息呢?
<img src="@Url.GetImageUrl(new Size(100,100),"test.jpg")">
<img src="@getImagePath(size(100,100),"test.jpg")">
imgTag.Attributes.Add("src", "@getImagePath(size(" + s.Width + "," + s.Height + "),\"" + fName+"\")");