2010-04-23 46 views
1

我的工作我的第一個MVC應用程序和正在到有點問題的。我有一個數據表,當單擊一行時,我想返回該行的詳細信息。我有一個功能設置爲:JQuery的阿賈克斯獲得傳遞參數

function rowClick(item) 
{ 
    $("#detailInfo").data("width.dialog", 800); 
    $.ajax({ 
     type: "GET", 
     contentType: "application/json; charset=utf-8", 
     url: "<%= Url.Action("GetDetails", "WarningRecognition")%>", 
     data: "", 
     dataType: "json", 
     success: function(data) {//do some stuff...and show results} 
} 

我遇到的問題是「項目」的傳遞。我調用控制器功能,看起來像這樣:

public JsonResult GetDetails(string sDetail) 
    { 
     Debug.WriteLine(Request.QueryString["sDetail"]); 
     Debug.WriteLine("sDetail: " + sDetail); 
     var myDetailsDao = new WarnRecogDetailsDao(); 

     return new JsonResult { Data = myDetailsDao.SelectDetailedInfo(Convert.ToInt32(sDetail)) }; 
    } 

但它從來沒有顯示任何作爲的「sDetail」。它確實擊中了該功能,但沒有任何信息傳遞給它。

所以,我看了,你通過通過數據參數,但我想盡組合,我能想到的,它永遠不會顯示出來。試過:

data: {"item"} 
data: {sDetail[item]} 
data: {sDetail[" + item + "]} 

回答

1

你試過{ sDetail: item }?數據項名稱需要與動作參數相匹配,否則asp.net mvc將不知道如何正確連線。

+0

是的,我試過了,但它仍然無法在控制器東西傳遞給表現出來。 – George 2010-04-23 15:26:07

+0

@George:你能發佈你的請求產生的URL嗎? – R0MANARMY 2010-04-23 15:27:52

+0

不知道我明白你想要我發佈什麼。 – George 2010-04-23 16:00:33

0

我所知道的是格式必須爲:

var data = '{"sDetail":"item"}'; 

它看起來並不像你的數據格式。你嘗試過這種組合嗎?

+0

是的,但仍然沒有傳遞給控制器​​。 – George 2010-04-23 16:09:20