C# 如何在asp.mvc aspx查看页面中连接img src?
在asp.net mvc aspx页面中,我像这样编写html输入图像C# 如何在asp.mvc aspx查看页面中连接img src?,c#,html,asp.net-mvc,C#,Html,Asp.net Mvc,在asp.net mvc aspx页面中,我像这样编写html输入图像 <img src="/public/images/"+<%: roleid %>+".jpg" alt="please load the image.." /> +“.jpg”alt=“请加载图像..”/> 在上面的代码中,roleid-1来自db,但src的格式不正确。 预期结果src:/public/images/1.jpg,但src格式不正确。请告诉我如何在aspx视图引擎中连接字符串 th
<img src="/public/images/"+<%: roleid %>+".jpg" alt="please load the image.." />
+“.jpg”alt=“请加载图像..”/>
在上面的代码中,roleid-1来自db,但src的格式不正确。
预期结果src:/public/images/1.jpg,但src格式不正确。请告诉我如何在aspx视图引擎中连接字符串
thnaks假设
roleid
是在视图的上方某处定义的,则应以以下方式形成属性值:
src='<%: string.Format("/public/images/{0}.jpg", roleid) %>'
src=''
注意事项:
标记中生成有几件事我想谈谈 1) 在运行时在视图中生成图像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) 不要在视图中直接使用IMG标记,而是使用如下扩展方法为HtmlHelpersClass创建新方法
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);
希望有帮助