2017-10-06 22 views
0

私のサンプルプログラムで$.ajaxメソッドを使用しようとしています。は以下に定義されてPostTarget.aspx.cs内

<form id="form1" runat="server"> 
     <div> 
      Country: 
      <asp:TextBox ID="txtCountry" runat="server"></asp:TextBox> 
      Title: 
      <asp:TextBox ID="txtTitle" runat="server"></asp:TextBox> 
      <asp:Button ID="btnAjax" runat="server" Text="$.ajax()" /> 
      <div id="container"></div> 
     </div> 
     <script src="Scripts/jquery-1.10.2.min.js"></script> 
     <script type="text/javascript"> 
      $(function() { 
       $("#btnAjax").click(function (evt) { 
        debugger; 
        var data = {}; 
        data.country = $("#txtCountry").val(); 
        data.title = $("#txtTitle").val(); 
        $.ajax({ 
         url: "PostTarget.aspx", 
         type: "POST", 
         data: data, 
         contentType: "x-www-form-urlencoded;charset=UTF-8", 
         dataType: "json", 
         success: SuccessfulAjaxResponse, 
         error: ErroticAjaxResponse 
        }); 
        evt.preventDefault(); 
       }); 
      }); 
      function SuccessfulAjaxResponse(results, status, jqXHR) { 
       $("#container").empty(); 
       for (var i = 0; i < results.length; i++) { 
        $("#container").append("<tr>" + 
         "<td>" + results[i].EmployeeID + "</td>" + 
         "<td>" + results[i].FirstName + "</td>" + 
         "<td>" + results[i].LastName + "</td>" 
         ); 
       } 
      } 

      function ErroticAjaxResponse(jqXHR, status, error) { 
       alert("Error: " + status); 
      } 
     </script> 
    </form> 

コード:私は以下のようなページを設計しました。上記をデバッグするとき

protected void Page_Load(object sender, EventArgs e) 
{ 
    var country = Request.Form["country"]; 
    var title = Request.Form["title"]; 
    var db = new NORTHWNDEntities(); 
    var emps = db.Employees 
     .Where(x => x.Country.Contains(country) || x.Title.Contains(title)) 
     .Select(x => new EmployeeSearchResult 
    { 
     EmployeeID = x.EmployeeID, 
     FirstName = x.FirstName, 
     LastName = x.LastName 
    }); 
    Response.Clear(); 
    Response.Write(JsonConvert.SerializeObject(emps)); 
    Response.Flush(); 
    Response.End(); 
} 

、私はcountryに値を取得し、title変数ではないのです。

いくつかのオンラインリソースを確認しましたが、コードはほぼ同じです。

誰でもどこでも間違っているのを確認して私に示唆してもらえますか?

答えて

1

データを正しく送信していません。 「x-www-form-urlencodedで」の文字列の形式でなければならない入力:

​​

ことがないよう、のRequest.Formメソッドは、それが期待された形式のデータが与えられていません。

関連する問題