2012-07-22 83 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