Ajax调用无法在服务器上运行

时间:2016-07-13 16:52:54

标签: c# jquery asp.net ajax asp.net-mvc

我的Javascript文件中有以下代码:

$.getJSON("/ProductMatrix/LocationList/" + $("#categoryTypeFilter > option:selected").attr("value"),
  function (data) {
    var items = "<option> Default  </option>";
    $.each(data,
      function (i, location) {
        items += "<option value=' " + location.Value + "'>" + location.Text + "</option>";
      });
    $("#captureLocationFilter").html(items);
  });

"/ProductMatrix/LocationList/"是控制器/操作,但它不能在服务器上运行,但它可以在本地计算机上运行。看起来url存在问题,因为此路径可能不存在于服务器上。有人可以帮助我。

当我尝试Url.Action时,我的外部javascript文件不满意。

enter image description here

1 个答案:

答案 0 :(得分:0)

我的猜测是你得到404错误。检查浏览器控制台。

一个建议是,不要像这样硬编码你的动作方法的url。始终尝试使用Url.ActionUrl.RouteUrl等html辅助方法为您的操作方法构建正确的相对网址。

var url="@Url.Action("LocationList","ProductMatrix")";
var v=$("#categoryTypeFilter > option:selected").attr("value");
//update the url (add ? as needed) according to how your server expects the url params
$.getJSON(url + v , function (data) {              
             //do something with data    
});

如果你的javascript代码在剃须刀视图中,这将正常工作,如果它在外部javascript文件中,请使用this answer中解释的解决方案。