3

この問題がすでに数か月間続いていて、アプリの初期バージョンでそのコントローラー メソッドを Googlebot に示したと思った場合。しかし、最近追加された新しいもの-属性LatestNewsもマークされています[ChildActionOnly]

問題 Elmah が次の例外をキャッチすることがあります。

The action 'LatestNews' is accessible only by a child request.

から

Connection: Keep-alive Accept: */* Accept-Encoding: gzip,deflate From: googlebot(at)googlebot.com Host: soldiez.com User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

次のアクション宣言があります(もちろん少し単純化されています)

[ChildActionOnly]
public virtual ActionResult LatestNews()
{
   var data = DataManager.CollectNews();
   return PartialView( data );
}

View は次のように呼び出されます。

<asp:Content ID="Content1" ContentPlaceHolderID="RightContent" runat="server"><%   
   Html.RenderAction( MVC.Home.LatestNews() );
%></asp:Content>

Googleがその子アクションをどのように見つけることができるのか疑問に思っています。ChildActionOnly なしのバージョンを展開したことはありません

助けていただければ幸いです!

4

2 に答える 2

1

これについてはあまり心配しません。主なことは、ChildAction属性が期待どおりに機能していることです。

このような問題は、多くの場合、貪欲なルートとタイプミスのリンクの結果です。Glimpseを(nugetから)ダウンロードして、一致しているルートを正確に確認できますが、これは、タイプミスされた可能性のあるリンク(おそらく子のアクションを指している)を見つけるのに役立ちません。

于 2011-08-14T16:56:31.213 に答える
0

AFAIK, Google Bot does not know anything any server language jargons. He only send a request to your server and then play with the returned response(which just include Html, js etc). He does not know about the url of your child action unless you have manually expose it.

于 2011-08-15T03:29:16.993 に答える