Jquery Ajax url到MVC控制器

时间:2017-04-11 15:47:23

标签: jquery ajax model-view-controller

我正试图通过Ajax从一个函数调用一个控制器:

$.ajax({
  url: "@Url.Action("items_status", "Part_views_index")",
  type: 'GET',
  dataType: 'json',
  error: function (xmlHttpRequest, errorText, thrownError) {
                alert(xmlHttpRequest + "|" + errorText + "|" + thrownError);
        },
  success: function (data) {
            UpdateItemsData(data);
        }
 });

但这会返回404,这里是控制器部分:

public class Partviewsindex : Controller
{
    // Controller for partial view 
    [HttpGet]
    public JsonResult items_status()
    {
        var chart = new getItemsStatusChart();
        var chartData = chart.GetPieChart();
        return Json(chartData);
    }
}

}

有什么想法吗?

由于

更新

我发现了问题,我需要在控制器名称末尾添加Controller,现在我的javascript文件中的url就像这样形成了:

$.ajax({
        url: '/Partviewsindex/items_status',
        type: 'GET',
        dataType: 'json',
        error: function (xmlHttpRequest, errorText, thrownError) {
            alert(xmlHttpRequest + "|" + errorText + "|" + thrownError);
        },
        success: function (data) {
            UpdateItemsData(data);
        }
    });

由于

2 个答案:

答案 0 :(得分:0)

请按F12并查看网络标签,看看巫婆网址,你真的让你发帖。

我认为您正在使用“{1}}”,并且您正在向此网址发出请求:url:

尝试简单地更改它应该有效:

http://.. "@Url.Action("items_status", "Part_views_index")"

答案 1 :(得分:0)

像这里写的那样https://msdn.microsoft.com/en-us/library/dd410269(v=vs.100).aspx你需要“#34; controller"作为sufix,它是模型 - 视图 - 控制器中的标准,因此您的控制器名称应该是PartviewsindexController