Asp.net

jquery getJson沒有將任何值傳遞給控制器

  • June 26, 2010

我正在嘗試將一些文本從文本框傳遞到控制器以獲得 JSON 結果,如下所示

function invokeAction() {
       var searchText = $("#SearchTextBox").val();

       // Invoke MVC controller action
       $.getJSON("/Home/Results/" + searchText, bindResults);
   }

如果我在這裡發出警報,我可以看到 searchText 肯定有一個值,但是當我在這個控制器操作上放置一個斷點時:

public ActionResult Results(string search)
   {
       var r = from t in db.Restaurants
               where SqlMethods.Like(t.Name, "%" + search + "%") || SqlMethods.Like(t.Postcode, search + "%") || SqlMethods.Like(t.CuisineType.Type, search + "%")
               orderby t.Name ascending
               orderby t.Rating descending
               orderby t.NumOfViews
                   descending
               select t;

       return Json(r.ToList());
   }

傳入的字元串為空,但是當我在調試器中檢查 http 上下文時,我的 searchtext 是 url 的一部分。

由於這是 null,因此查詢不返回任何結果。

我在這裡錯過了什麼嗎?

我在從服務返回 json 時遇到了一些問題,但我沒有收到任何回電。事實證明,json 格式不正確,我能夠通過處理普通 ajax 呼叫的錯誤選項對其進行測試並獲取這些錯誤。

$.ajax({
 type: "GET",
 url: "Home/Results/",
 data: { search: searchText },
 dataType: "json",
 error: function(xhr, status, error) {
   // you may need to handle me if the json is invalid
   // this is the ajax object
 },
 success: function(json){
   alert( "Data Returned: " + json);
 }
});

引用自:https://stackoverflow.com/questions/536283