【发布时间】:2011-04-05 09:35:45
【问题描述】:
我在这里有自定义 AuthorizeAttribute:Handling session timeout in ajax calls 它工作得很好。但是 Account 控制器的 LogOn Action 在 ASP.NET MVC 中有 returnURL 参数。登录后它返回到最后一页(returnURL)。现在我想返回如下数据:
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
filterContext.Result = new JsonResult
{
Data = new
{
// put whatever data you want which will be sent
// to the client
message = "/Account/LogON/?returnUrl=" + filterContext.ActionDescriptor.ControllerDescriptor.ControllerName + "/" + filterContext.ActionDescriptor.ActionName
},
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
}
但是您可以在这里看到它返回由 ajax 调用的 ActionName。但我想返回基本 ActionName。请给我建议。我有一些想法作为隐藏值或使用 javascript 从 windows.location 获取 ActionName。但我认为这不是一个好主意。 如果您不理解我的问题,请提出问题
【问题讨论】:
-
基本动作名称是什么意思?
-
可以说我在产品控制器的列表操作中。并使用 ajax 调用 Products Controller 的 GetAjax Action。我想接收 /Products/List 而不是 /Products/GetAjax
标签: jquery asp.net-mvc ajax asp.net-mvc-2