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 に答える