阻止来自世界各地的MVC Action

时间:2015-05-27 10:33:15

标签: c# asp.net-mvc asp.net-mvc-4

我有一个MVC的Action方法:

 [HttpPost]
 public ActionResult callAction(int Id, string ffs, string sid)
 {
     //Business Logic
     return View(); 
 }

并且从JS <​​/ p>调用此动作

 var _url = vpath + '/contraller/callAction' + sidpath + '?Id=' + id + '&ffs=' + bfSelected + '&s=' + fps;
 clickCount = 1;
 $.post(_url, function (data) {
     if (data.Completed) {
         location.href = data.ReturnUrl;
     }
 });

现在我想阻止从世界各地调用这个动作。应该仅从同一个应用程序调用此操作。 我用了 [ChildActionOnly]

但不起作用

1 个答案:

答案 0 :(得分:2)

使用操作中的ControllerContext.IsChildAction属性来确定是否要重定向。

例如:

public ActionResult Index()   
{   
    if(!ControllerContext.IsChildAction)   
    {  
       //perform redirect here   
    }

    //do stuff here
    return View(viewModel);
}