我正在尝试创建一个 Asp.Net MVC 3 应用程序,其中控制器中的一种操作方法是处理许多不同的请求并能够为带有产品信息的视图提供服务,并且产品在 id 参数中指定。
原因是用户(非程序员)希望能够轻松添加新视图,而无需添加操作方法等。
每个视图都有图像元素,src 属性指的是相对路径(例如“images/image_1.svg”)
现在,我能想到的唯一方法是有一个如下所示的操作方法:
//This takes a url with the format /Manuals/Product/id_sample, where the last is an id parameter
public ActionResult Product(string id)
{
return View(id + "/" + id);
}
我将视图的路径与 id 连接两次的原因是能够为每个产品创建一个单独的文件夹,其中包含自己的“图像”文件夹。
因此视图位于如下所示的文件夹结构中:
Views
Manuals
id_sample (this folder containing a view also called id_sample.cshtml)
images
给定上述路径,这确实提供了正确的视图。但是,我意识到这可能不是一个好方法。它生成的 url 不适用于图像的相对路径。
我得到图像的“找不到资源”,在网络检查器工具中我可以看到它正在路径 localhost/Manuals/Product/images/image_1.svg 中寻找图像,这当然不存在.
那么我怎样才能做到这一点并能够对视图中的图像使用简单的相对路径呢?
请注意,视图是使用 XML 的 XSLT 转换创建的,因此所有图像路径都是在那里创建的。
如果有完全不同的方式来做这件事,请告诉我,我有一种感觉,我正在以错误的方式去做。并且如果解决方案与设置路由有关,请在解释中非常详细,因为我对Asp.Net MVC的路由机制没有很好的掌握......