-1

我有一个 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”,也会发生同样的事情。)

有没有办法在控制器中调用一个过程(“索引”除外),然后加载一个视图,该视图将在正确的位置进行布局?

4

1 回答 1

0

似乎您的问题是关于相对路径和绝对路径..

阅读http://en.wikipedia.org/wiki/Path_%28computing%29

您使用相对路径,这意味着相对于当前目录。

用于/path强制路径从根开始解析。从某种意义上说,这称为绝对路径,无论您从哪里开始,它总是指向相同的位置。

于 2012-10-16T22:09:32.727 回答