额外的:
下载我尝试转换为 AttributeRouting 失败的项目。
当主页上的消息在“没有新电子邮件”之间变化时,该项目将正常运行。和“你有邮件!”。在其当前的错误状态下,该消息不会改变。
将显示 javascript 控制台中的错误。
使用浏览器直接导航到 /Checkemail 会导致 404 错误。
原帖:
这是一个关于AttributeRouting的问题(使用最新的 v3.4.1)。
我正在尝试将 a 挂接GET[""]
到以下代码。
[GET("")]
我得到一个 404 - 找不到资源。
[GET("CheckEmail")]
我得到一个 405 - 不允许的方法。
我正在尝试将此项目转换为 AttributeRouting: source code。checkemail 操作是我失败的地方。
该方法是作为“ ajax 长轮询”技术的一部分的异步方法。
我对我惨淡的尝试发表了以下评论:
public class CheckEmailController : AsyncController
{
//
// GET: /CheckEmail/
//tried [GET("")]
//tried [GET("CheckEmail")]
public void IndexAsync()
{
AsyncManager.OutstandingOperations.Increment();
MyAsyncEmailChecker.CheckForEmailAsync(hasEmail =>
{
AsyncManager.Parameters["hasEmail"] = hasEmail;
AsyncManager.OutstandingOperations.Decrement();
});
}
private class IndexResponse
{
public bool d { get; set; }
}
public JsonResult IndexCompleted(bool hasEmail)
{
return this.Json(new IndexResponse() { d = hasEmail });
}
}
Global.asax.cs - 对于我所有的 AR 项目
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
}
谢谢你