2012-07-22 85 views
15

我有一個javascript方法onRowSelected wchich獲取rowid。如何通過HttpGet控制器的某些動作傳遞rowid?剃刀視圖中的JavaScript url操作

function onRowSelected(rowid, status) { 
     alert('This row has id: ' + rowid); 
     //url: @Action.Url("Action","Controller") 
     //post:"GET" 
     // Something like this? 
    } 

回答

39

如果你的控制器動作需要一個id查詢字符串參數:

var url = '@Url.Action("Action", "Controller")?id=' + rowid; 

,或者如果你想要把它作爲你可以使用路由的部分替代:

var url = '@Url.Action("Action", "Controller", new { id = "_id_" })' 
    .replace('_id_', rowid); 

還如果您要發送AJAX請求,另一種可能性是將其作爲POST主體的一部分傳遞:

$.ajax({ 
    url: '@Url.Action("Action", "Controller")', 
    type: 'POST', 
    data: { id: rowid }, 
    success: function(result) { 

    } 
}); 

或作爲查詢字符串參數,如果你正在使用GET:

$.ajax({ 
    url: '@Url.Action("Action", "Controller")', 
    type: 'GET', 
    data: { id: rowid }, 
    success: function(result) { 

    } 
}); 

所有這些假設你的控制器動作發生過程中的ID參數:

public ActionResult Action(string id) 
{ 
    ... 
} 

所以,你可以看到很多方法達到相同的目標。

+0

我想知道爲什麼第一個答案不起作用。阿賈克斯答案效果很好。 – nebula 2012-07-22 12:09:21

+0

最終生成的url如何在源代碼中查找? – 2012-07-22 12:23:50

+0

即使在螢火蟲中也不會觸發任何事件。該URL不會更改。 – nebula 2012-07-22 12:51:13