1
我们在主索引页面内使用Iframe。我写了一个控制器,可以让你像处理程序那样请求资源(图像,Js,Css等)。如何统一iframe中呈现的视图的路由网址
@Html.Css("Ico16", "Add")
//Converts to this
<link src="Style?Key=ico16&File=add" type="text/css" />
路由到请求图像也会出现相同这样:
<img src="Image?Key=ico16&File=add" />
然而,这下一个路由仅适用于I帧内显示视图。
<link src="Default/Style?Key=Ico16&File=Add" type="text/css" />
最后,水就变得略微浑浊BC如上图所示......如果我是一个内外部JavaScript文件虽然只有CSS请求的动作,我必须在控制器名又像增加至路线所以:
$(document).ready(function()
{
$('#SomeDiv').append('<img src="Default/Image?Key=ico16&File=add"></img>');
})
我如何统一这些路线使他们都一致?我坦率地不在乎它写的是哪种方式,只要它对于不同的内容区域来说没有什么不同。
的路线:
routes.MapRoute(
"PlatformIFrame",
"{controller}/{action}/{key}", // URL with parameters
new { controller = "Default", action = "Index", key = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Platform",
"{action}/{key}", // URL with parameters
new { controller = "Default", action = "Index", key = UrlParameter.Optional } // Parameter defaults
);
控制器:
public class DefaultController : Controller
{
public ActionResult Style(string key, string file)
{
}
public ActionResult Script(string key, string file)
{
}
public ActionResult Image(string key, string file)
{
}
}
为什么不直接链接到样式,脚本和图像的内容? – Cymen
@Cymen两个非常有道理的理由:首先,我有一个内部缓存过程,缓存取决于拦截资源请求的能力。你如何轻松地容纳那些直接放置资源? 第二个原因是为了可维护性。如果我们决定重新安置我们所有的资源呢?你想成为那些必须更新所有资源URL的人吗? –