我刚刚完成了一个网站LostPetListings.com,它在主布局中有部分视图。我有一个部分视图“创建帐户”,在电子邮件属性上进行远程验证,工作正常。我甚至可以在html中看到data-val-remote-url =“/ en-us / Validation / EmailExists”,它在使用Firebug检查请求时测试正常。问题:我收到了大量错误,“找不到用于远程验证的URL。”当Googlebot访问该网站时?我不明白为什么? db中存在的电子邮件是t@t.com来测试它..
我的模特:
[Required(ErrorMessageResourceType = typeof(SharedStrings), ErrorMessageResourceName = "EmailRequired")]
[MyRemote("EmailExists", "Validation", "", ErrorMessageResourceType = typeof(SharedStrings), ErrorMessageResourceName = "EmailAlreadyExists")]
public string Email { get; set; }
我的属性:
public class MyRemoteAttribute : RemoteAttribute
{
public MyRemoteAttribute(string action, string controller, string area)
: base(action, controller, area)
{
this.RouteData["area"] = area;
}
}
验证控制器装饰有:
[OutputCache(Location = OutputCacheLocation.None, NoStore = true)]
验证控制器操作:
[HttpGet]
public JsonResult EmailExists(string Email)
{
string culture = RouteData.Values["culture"]==null?"en-us":RouteData.Values["culture"].ToString().Replace("_", "-").ToLower();
if (Email != "" && SecurityHelper.ReferrerIsValid)
{
EndUser_Translated eut = endUserTranslatedRepository.Get(d => d.EndUser.Email == Email.Trim() && d.Culture == culture);
if(eut==null)
return Json(true, JsonRequestBehavior.AllowGet);
else
return Json(SharedStrings.EmailAlreadyExists, JsonRequestBehavior.AllowGet);
}
else
return Json(SharedStrings.EmailAlreadyExists, JsonRequestBehavior.AllowGet);
}
如何在Master布局中加载Partial:
@Html.Partial("_CreateAccount", new RegisterModel())
一切都很好,所以无法理解为什么我从机器人那里得到这么多错误[查找IP我在错误日志中遇到错误... Googlebot特别]?它可能与主布局中缓存的部分有什么关系吗?任何想法/猜测都会受到欢迎,即使最终不正确,因为它可能会让人想起一些事情......
答案 0 :(得分:0)
就是这样......我有一个异常就是在我的路线中删除了RouteValues.Values [“Culture”] ......缓存的页面在网址中显示了正确的文化..但是在我的文化导航中走了......所以问题就在上游。简而言之,如果一个url依赖操作表现得很奇怪,请检查你的路由表..?它帮助了我