[英]How to concatenate the img src in asp.mvc aspx view page?
在asp.net mvc aspx页面中,我正在编写这样的html输入图像。
<img src="/public/images/"+<%: roleid %>+".jpg" alt="please load the image.." />
在上面的代码中,roleid -1来自db.but src格式不正确。 预期结果 src:/public/images/1.jpg但src格式不正确。请告诉我如何在aspx视图引擎中连接字符串?
thnaks
假设在视图上方的某个位置定义了roleid
,则应以这种方式形成属性值:
src='<%: string.Format("/public/images/{0}.jpg", roleid) %>'
注意事项:
<%: %>
标记内生成 我想谈谈几件事。
1)在运行时在View中生成图像URL不是一个好习惯。 您应该为此使用ViewModel
public class MyViewModel
{
public MyModel m;
public void MyViewModel(MyModel m){this.m=m;}
public string ActualIMageUrl
{
get
{
return "public/Images/"+m.RoleId+".jpg";
}
}
}
现在,使您的视图成为此ViewModel类的强类型视图,而不是Model。
2)不要在视图中直接使用IMG标记,而是使用扩展方法为HtmlHelperClass创建新方法,如下所示:
public static class MVCExtensions
{
public static MvcHtmlString Image(this HtmlHelper helper, string src, string altText, string height)
{
var builder = new TagBuilder("img");
builder.MergeAttribute("src", src);
builder.MergeAttribute("alt", altText);
builder.MergeAttribute("height", height);
return MvcHtmlString.Create(builder.ToString(TagRenderMode.SelfClosing));
}
}
现在在视图中
@model MyViewModel
.
.
.
@Html.Image(Model.ActualImageUrl);
希望能有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.