阻止从URL访问部分视图,但不能从Ajax调用访问

时间:2016-07-22 16:11:09

标签: asp.net-mvc asp.net-mvc-4 model-view-controller asp.net-ajax

我在我的控制器中写了几个部分方法,它正在访问直接输入url。我想限制那些特定的方法。我使用[ChildActionOnly]属性来限制它。它工作正常,但我使用Ajax调用来访问这些方法。 Ajax调用在ChildActionOnly中不起作用。是否有任何属性将阻止url并允许Ajax调用? 感谢。

1 个答案:

答案 0 :(得分:4)

您可以使用Request.IsAjaxRequest()来确定呼叫是否是ajax呼叫,并执行您想做的任何事情。

public ActionResult TestRadioButtons()
{
     if(!Request.IsAjaxRequest())
       return new HttpNotFoundResult("Not found");

    //continue processing 
   // to do :Return something    
}

如果您愿意,您可以简单地将用户重定向到另一个页面(非ajax操作方法),而不是返回NotFound结果。

if(!Request.IsAjaxRequest())
{
   return RedirectToAction("Index");
}