3

VS2008でMVC2を使用しており、ビュー〜/ Shared/Site.Masterに次のコードがあります。

<ul id="navlist">
            <li class="first"><a href="<%= Url.Content("~")%>" id="current">Home</a></li>
            <li><a href="<%= Url.Content("~/Store/")%>">Store</a></li>
            <li>
                **<% Html.RenderAction("CartSummary","ShoppingCart"); %></li>**
            <li><a href="<%= Url.Content("~/StoreManager/") %>">Admin</a></li>
        </ul>

次の例外をスローします。

ハンドラー'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'の子要求の実行中にエラーが発生しました。

これにはこの内部例外があります:

パブリックアクションメソッド「CartSummary」がコントローラー「MvcMusicStore.Controllers.ShoppingCartController」で見つかりませんでした。」

...それは意味がありません。「CartSummary」メソッドは次のように定義されています。

// GET: /ShoppingCart/CartSummary
[NHibernateActionFilter]
[ChildActionOnly]
[HttpGet]
public ActionResult CartSummary()
{
    var cart = ShoppingCart.GetCart(this.HttpContext, this.NSession);

    ViewData["CartCount"] = cart.GetCount();

    return PartialView("CartSummary");
}

では、何が得られるのでしょうか?ここで何かが足りませんか?

4

3 に答える 3

5

子アクションから[HttpGet]属性を削除するとどうなりますか?

私が正しければ、子アクションは「メインアクション」が呼び出されたのと同じHTTP動詞で呼び出されます。

于 2012-08-16T15:28:43.737 に答える
0

@Cosmo...はコントローラーの名前「ShoppingCartController」またはShoppingCartです。'ShoppingCartController'の場合、コントローラー名が正しくないため、html.RenderActionはbarfします。

次のように変更します:Html.RenderAction( "CartSummary"、 "ShoppingCartController");

于 2012-08-16T15:28:53.337 に答える
0

フィルタHtml.RenderActionに変更Html.Actionまたは削除します[ChildActionOnly]

于 2012-08-16T20:23:43.930 に答える