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>

我想知道谷歌如何找到那个子动作。我从来没有部署过没有 ChildActionOnly 的版本

我将不胜感激任何帮助!

4

2 回答 2

1

我不会太担心这一点 - 主要是 ChildAction 属性按预期工作。

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

于 2011-08-14T16:56:31.213 回答
0

AFAIK,Google Bot 不知道任何服务器语言术语。他只向您的服务器发送请求,然后使用返回的响应(仅包括 Html、js 等)。除非您手动公开它,否则他不知道您的子操作的 url。

于 2011-08-15T03:29:16.993 回答