我有一个MVC 3应用程序,它有一个默认视图和第二个视图,我将其称为SecondView。 SecondView有一个相应的控制器,SecondViewController。
SecondViewController.cs包含两个程序:Index()
和LoadSecondView(id)
,都返回View("SecondView")
。
SecondView.cshtml包含:
@{
ViewBag.Title = "SecondView";
Layout = "~/Views/_MasterLayout.cshtml";
}
<h2>Second View</h2>
如果我的主index.cshtml调用window.open(“SecondView”),那么页面将使用Views / _MasterLayout.cshtml中的布局按预期加载。
但是,如果它调用window.open(“SecondView / LoadSecondView / id-parameter-string”),那么_MasterLayout认为“当前目录”是/ SecondView / LoadSecondView而不是/,以及所有链接(例如)图像现在指向错误的位置,因此忽略整个布局。 (如果LoadSecondView不接受任何参数,则调用URL也只是“SecondView / LoadSecondView”。)
有没有办法在控制器中调用一个过程(“索引”除外),然后加载一个可以在正确位置查看布局的视图?
答案 0 :(得分:0)
似乎你的问题是关于相对路径和绝对路径..
阅读http://en.wikipedia.org/wiki/Path_%28computing%29
您使用相对路径,这意味着相对于当前目录。
使用/path
强制路径开始从根解析。在某种意义上,这被称为绝对路径,无论你从哪里开始,它总是指向相同的位置..