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

Pra*_*mar 1 model-view-controller asp.net-mvc asp.net-ajax asp.net-mvc-4

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

Shy*_*yju 5

您可以使用Request.IsAjaxRequest()来确定该调用是否为 ajax 调用并执行您想做的任何操作。

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

    //continue processing 
   // to do :Return something    
}
Run Code Online (Sandbox Code Playgroud)

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

if(!Request.IsAjaxRequest())
{
   return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)