0

不知道为什么,一切看起来都很好,但是在尝试访问控制器中的函数时出现 HTTP 404 错误。这是aspx:

function CheckIfPacked() {
  if ($("#OrderNumber").val() != "") {
    var url = "/Packing/PackageTracking/CheckIfPacked";
    $.ajax({
      url: url,
      cache: false,
      data: "orderNumber=" + $("#OrderNumber").val() + "&actionyes=GetSalesOrder()",
      success: function (data) {
      var domElement = $(data);
      if (data != "") {
        $('#MessageDiv').append(domElement);
      }
    });
  }
}

这是控制器:

public Result CheckIfPacked(string orderNumber) {
   var mesEntity = new MESEntities();
   var packh = from packhead in mesEntity.Packing_Transaction_Headers
               where packhead.Order_No_ == orderNumber
               select packhead.Completed_by_Packer;
   if (packh.First() == 0)
   {
      return new Result { Success = true, Message = string.Format("You have not finished packing order {0}, are you sure you want to navigate away from this page?", orderNumber) };
   }
   else
   {
      return null;
   }
} 

我想我只是盯着这个太久了。谢谢。

4

1 回答 1

0

你的方法应该是静态的,你应该为你的函数使用 webmethod 属性:

[WebMethod]
public static Result CheckIfPacked(string orderNumber) {
   var mesEntity = new MESEntities();
   var packh = from packhead in mesEntity.Packing_Transaction_Headers
               where packhead.Order_No_ == orderNumber
               select packhead.Completed_by_Packer;
   if (packh.First() == 0)
   {
      return new Result { Success = true, Message = string.Format("You have not finished packing order {0}, are you sure you want to navigate away from this page?", orderNumber) };
   }
   else
   {
      return null;
   }
} 
于 2012-10-29T18:27:51.873 回答