鉴于以下简化的ASP.NET MVC场景:
$.ajax({..}
)jQuery帖子,它调用Home控制器中的方法,例如/Home/GetProducts
GetProducts()
方法中,我需要获取索引操作名称 - 请记住,在运行时我不知道用户是否正在浏览Home/Index
,Home/About
,{{ 1}}等,因为Home/Contact
可以从任何地方调用。我无法在我的生活中获得GetProducts
方法范围内的页面操作(例如索引,关于,联系等)。
我尝试了以下内容:
GetProducts()
答案 0 :(得分:1)
你无法得到它。 HTTP是一种无状态协议,它不会跟踪先前的请求。因此,只需将其作为参数传递给AJAX请求:
$.ajax({
url: '@Url.Action("GetProducts", "Home")',
data: { currentAction: '@ViewContext.RouteData.GetRequiredString("action")' },
success: function(result) {
// do something with the results
}
});
并且您的GetProducts
控制器操作会将其作为参数:
public ActionResult GetProducts(string currentAction)
{
...
}