适用于Googlebot的MVC2 / 3 ChildActionOnly控制器方法?

时间:2011-08-13 23:51:13

标签: asp.net-mvc googlebot

如果已经有好几个月这个问题并且认为我在早期版本的应用程序中向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>

我想知道谷歌如何找到这个孩子的行为。我从未在没有ChildActionOnly的情况下部署版本

如果有任何帮助,我将不胜感激!

2 个答案:

答案 0 :(得分:1)

我不会太担心这个问题 - 主要的是ChildAction属性按预期工作。

这样的问题往往是贪婪的路线和错误的链接造成的。您可以下载Glimpse(来自nuget),这样您就可以确切地看到匹配的路线,但这不会帮助您找到可能错误输入的链接(可能指向您的子操作)。

答案 1 :(得分:0)

AFAIK,谷歌博特不知道任何服务器语言术语。他只向您的服务器发送请求,然后播放返回的响应(仅包括Html,js等)。除非您手动曝光,否则他不知道您的孩子动作的网址。