Asp.net mvc 3 在Asp.NETMVC中相对于视图路由图像?

Asp.net mvc 3 在Asp.NETMVC中相对于视图路由图像?,asp.net-mvc-3,asp.net-mvc-routing,relative-path,Asp.net Mvc 3,Asp.net Mvc Routing,Relative Path,我需要能够将图像放置在相对于视图的路径中,但我不确定如何实现这一点,因为我对MVC布线没有很好的掌握: 如果我有这样的路线: routes.MapRoute( "Parameter", "{controller}/{action}/{lang}/{prod}", new { controller = "Manuals", action = "Product", lang = "en-US", prod

我需要能够将图像放置在相对于视图的路径中,但我不确定如何实现这一点,因为我对MVC布线没有很好的掌握:

如果我有这样的路线:

routes.MapRoute(
                "Parameter",
                "{controller}/{action}/{lang}/{prod}",
                new { controller = "Manuals", action = "Product", lang = "en-US", prod = "productname" }
然后我尝试使用图像的相对路径:

<embed class="images src="@Url.Content("images/sampleimage.svg")"></embed>

我不确定您是否理解该框架应该如何工作

我的第一点是关于公约。惯例是将视图存储在“视图”文件夹中。然后,您可以为您的显示/编辑模板或共享局部视图使用DisplayTemplates、EditTemplates和Shared。这是MVC开发人员习惯的惯例,因此,如果您开始在这些文件夹中放置其他内容,您将混淆其他开发人员,并最终混淆您自己


你想达到什么目标?您是否在寻找特定格式的URL?您可以选择的一个方法是执行返回图像的操作。另一种选择是URL重写或路由到静态文件:

使用控制器操作从数据库或磁盘获取图像。 下面是从站点根目录中名为“ImageFolder”的文件夹获取图像的示例

public virtual FilePathResult GetImage(string imageId){
    var path = Path.Combine(Server.MapPath("~"), "ImageFolder", imageId + ".svg");
    return new FilePathResult(path, "image/jpg");
}
您可以使用类似的方法来检索产品的示例图像

在ASP.NET MVC中,您不依赖文件夹层次结构来导航站点。框架有一些文件夹约定,但它们不用于路由

对于静态图像,可以将其放置在“内容/图像”文件夹中