在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
答案 0 :(得分:1)
假设roleid
在视图中的某处定义,您应该以这种方式形成属性值:
src='<%: string.Format("/public/images/{0}.jpg", roleid) %>'
注意事项:
<%: %>
标记答案 1 :(得分:0)
我想谈谈几件事。
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类的强类型视图,而不是模型。
2)不要在你的View中直接使用IMG标签,而是使用extenion方法为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);
希望有所帮助