在asp.net mvc中使用jquery ajax和自己的路由

时间:2011-12-12 20:09:30

标签: ajax asp.net-mvc

我有自己的路线:

routes.MapRoute(
         "Index", // Route name
         "Index/{date}", // URL with parameters
         new { controller = "Index", action = "Index", 
         date = UrlParameter.Optional } // Parameter defaults 

如何在索引控制器中调用我的方法?

[HttpPost]
        public ActionResult GetIndexationWage(string BeginDate, string EndDate)
{
...
} 

当我尝试这个时:

$.ajax({
                url: '@Url.Action("GetIndexationWage")',
                type: 'POST',
                data: JSON.stringify(myVar),
                dataType: 'json',
                processData: false,
                contentType: 'application/json; charset=utf-8',
                success: function(data) {
....

它返回我的页面(/ Index)但不是json数据。如何在没有单独的控制器的情况下执行此操作(实例 - ajaxController)?

1 个答案:

答案 0 :(得分:1)

您的MVC控制器方法应使用JsonResult

此外,正如您现在的代码一样,您的Index方法签名只有一个参数(日期),因此调用您的其他方法GetIndexationWage必须从其他地方获取它的“结束日期”参数。如果那是有意的,好的......只要确保你看到了。

此外,您的jquery调用直接调用GetIndexationWage,而不是使用该路由。这也是有意的吗?如果是这样,请确保使用JsonResult并知道您绕过了映射路径。