2010-12-13 213 views
1

我正在使用ASPNET MVC 2.0。我試圖使用jquery函數.ajax將View中的值傳遞給Controller函數。我jQuery的功能是:

$(document).ready(function() { 
    $("#Search").click(function(event) { 

     var searchString = $("#TraderSearch").val();    
     $.ajax({ 
      type: 'POST', 
      url: '/Build/SearchTrader', 
      data: "{strData : '" + searchString + "' }", 
      contentType: 'application/json; charset=utf-8', 
      dataType: 'json', 
      success: function(ResultList) { 
       var contents = ""; 
       var count = 0; 
       $(ResultList).each(function() { 
       contents = contents + '<tr><td>' + ResultList[count].Name + '</td><td>' + ResultList[count].Value + 
        '</td><td><a class="edit"><img src="../../html/images/Edit.gif" width="14" height="14" alt="edit" /></a></td></tr>'; 
        count = count + 1; 
       }); 
       $("#SerachResultList").append(contents); 
       alert("{strData : '" + searchString + "' }"); 
      }, 
      error: function(XMLHttpRequest, textStatus, errorThrown) { 
       alert("Error: " + textStatus + "\n" + errorThrown); 

      } 
     }); 


    }); 
}); 

我的控制器功能如下:

public ActionResult SearchTrader(string strData) 
    { 


     //Function to search DB based on the string passed 

     return Json(lstDictObject); 
    } 

我的問題是,我不能在我的控制器來獲取值。我得到strData爲'null'。我認爲我試圖通過價值的方式存在嚴重的錯誤?任何人都可以糾正我?

由於事先

VIPIN梅農

+0

嘗試使用有效的JSON:''{「strData」:「'+ searchString +'」}'',有什麼區別? – 2010-12-13 13:05:37

+0

它可能是一個路由問題。默認值是'可能'設置爲id。一條新路線可能會幫助你。 – 2010-12-13 13:09:49

回答

0

試試這個:

data: "strData = " + searchstring 
+0

爲什麼-1?.... – 2010-12-13 13:00:12

+0

不是我的投票,但這在幾個層面上是不正確的,額外的間距和缺乏編碼的主要 – 2010-12-13 13:06:26

0

我相信下面應該工作:

data: { strData: searchstring } 

行情造成了同樣的問題腳本我剛測試過。

如果這是您的實際代碼,您還需要檢查「#SerachResultList」上的拼寫。