-1

デフォルトのビューと、SecondView と呼ぶ 2 番目のビューを持つ MVC 3 アプリケーションがあります。SecondView には、対応するコントローラー SecondViewController があります。

SecondViewController.cs には と の 2 つのプロシージャが含まれてIndex()おりLoadSecondView(id)、どちらも を返しView("SecondView")ます。

SecondView.cshtml は以下で構成されます。

@{
    ViewBag.Title = "SecondView";
    Layout = "~/Views/_MasterLayout.cshtml";
}

<h2>Second View</h2>

メインの index.cshtml が wi​​ndow.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 に答える