Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.mvc aspx查看页面中连接img src?_C#_Html_Asp.net Mvc - Fatal编程技术网

C# 如何在asp.mvc aspx查看页面中连接img src?

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

在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视图引擎中连接字符串


thnaks

假设
roleid
是在视图的上方某处定义的,则应以以下方式形成属性值:

src='<%: string.Format("/public/images/{0}.jpg", roleid) %>'
src=''
注意事项:

  • 引号模式:单引号表示整个值,双引号表示C#代码中的字符串
  • 值字符串在
    标记中生成

  • 有几件事我想谈谈

    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);
    
    希望有帮助