ASP.NET MVC图像和其他静态内容url

Sha*_*ean 8 asp.net-mvc asp.net-mvc-routing

我刚编辑了用户详细信息页面的路由,如下所示:

        routes.MapRoute(
            "UserDetails", // Route name
            "{controller}/{action}/{id}/{title}", // URL with parameters
            new { controller = "Users", action = "Details", id = UrlParameter.Optional, title = UrlParameter.Optional } // Parameter defaults
            );
Run Code Online (Sandbox Code Playgroud)

现在,当我的网址看起来像这样:localhost/Users/Details/1/ShawnMclean 图片不会从控制器和site.master加载.(不知道为什么css和javascript有正确的网址).如果网址是localhost/Users/Details/1那么一切都很好.

我的img in site.masterDetails.aspx在旧网址中看起来像这样:

<img src="../../Content/Images/logo3.png" />
Run Code Online (Sandbox Code Playgroud)

但是当url获得一个额外的参数时,图像实际上位于 ../../../Content/Images/logo3.png

有没有办法让图像和其他静态内容的网址发生变化?

qua*_*els 22

尝试链接您的图片,如下所示:

<img src="/Content/Images/logo3.png" /> 
Run Code Online (Sandbox Code Playgroud)

或者,如果这不起作用,您可以随时使用帮助链接

<img src="<%= Url.Content("~/Content/Images/logo3.png") %>" />
Run Code Online (Sandbox Code Playgroud)

另一种方式可能是

<img src="@Url.Content("~/Content/Images/logo3.png")" />
Run Code Online (Sandbox Code Playgroud)

  • `/`表示绝对(root).`../`是相对的.始终尝试使用绝对路径.MVC的正确方法是使用`Url.Content(〜/)`. (3认同)