4
<body>
<div id="header">
<div class="title">SPORTS STORE</div>
</div>
<div id="categories">
<% Html.RenderAction("Menu", "Nav"); %>
</div>
<div id="content">
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
</div>
</body>

これは、StevenSandersonsの著書「ProASP.NETMVCFramework」のサンプルコードです。

このコードは、MVCV1およびMvcContribで機能します。それが何をするか、それは「Nav:Controller」の「Menu()」ビューをレンダリングします。ASP.NET MVC V2にはPartial()およびRenderPartial()機能が含まれているため、実装しようとしましたが、このコードは機能しません。いくつかの方法で変更しようとしましたが、パラメーターとして部分ビューをレンダリングするオーバーロード関数がないようです:1)コントローラー名2)ビュー名

この方法でRenderAction()を実装しているのは私が最初ではないと確信しているため、回避策が必要です。助けてください。

4

2 に答える 2

4

問題が見つかりました。私は常に {controller}/{action} ルートを削除し、すべてのルートを小文字の REST のような URL でカスタマイズしています。しかし、Html.RenderAction の場合、そのような一般的なルートが必要です。その一般的なルートをルートリストの最後に追加したところ、うまくいきました。– マフディ 2 月 22 日 14:42

私はまだ理解していませんが、これがどのように機能するのか、なぜルートが必要なのか、ルートの制約は何ですか。多分私は後でいくつかの研究を行うでしょう。

于 2010-03-09T17:44:07.573 に答える
1

RenderActionMVC2にあります(ドキュメントはこちら)。代わりにコードを使用するように変更したようですが、RenderPartialこれはまったく異なります。使用に戻せRenderActionば問題ありません。お使いのバージョンにない場合は、おそらく最新のベータ版に更新する必要がありますか?

于 2010-03-09T12:48:42.423 に答える