<img alt="Upload Profile Pic" src="<%= ViewData["PicSource"].ToString() %>" />
UPDATE:
此外,当我们编写这种语法时,visual studio使用红色的红线突出显示我们的html代码的几个元素,就像我们遇到一些语法错误一样,看起来我们编写的语法不起作用并且是错误的,但实际上当我构建它时,它起作用了。
它还拒绝自动格式化html代码。这是我提出这个问题的充分理由,因为即使我知道这种语法会起作用,但每当我这样写的时候,我觉得我做错了。
答案 0 :(得分:3)
是的,你可以这样写。
但是,它通常被称为“意大利面条代码”,最佳做法是使用辅助方法。
public static class ImageHelper
{
public static MvcHtmlString Image(this HtmlHelper html, string sourcePath, object htmlAttributes)
{
return html.Image(sourcePath, new RouteValueDictionary(htmlAttributes));
}
public static MvcHtmlString Image(this HtmlHelper html, string sourcePath, IDictionary<string,object> htnlAttributes)
{
if(string.IsNullOrEmpty(sourcePath))
{
throw new ArgumentException("Image source path cannot be null or empty.", "sourcePath");
}
TagBuilder tagBuilder = new TagBuilder("img");
tagBuilder.MergeAttributes<string,object>(htnlAttributes);
tagBuilder.MergeAttribute("src", sourcePath, true);
return MvcHtmlString.Create(tagBuilder.ToString(TagRenderMode.SelfClosing));
}
}
然后,你看起来像
Html.Image(ViewData["PicSource"] as string, new {alt = "Upload Profile Pic"});