在剃刀视图中的Javascript url操作

neb*_*ula 17 javascript razor asp.net-mvc-3

我有一个javascript方法onRowSelectedwchich得到rowid.如何在控制器的某些动作中传递rowid HttpGet

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

Dar*_*rov 47

如果您的控制器操作需要id查询字符串参数:

var url = '@Url.Action("Action", "Controller")?id=' + rowid;
Run Code Online (Sandbox Code Playgroud)

或者如果你想将它作为路线的一部分传递,你可以使用替换:

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

如果您要发送AJAX请求,另一种可能性是将其作为POST正文的一部分传递:

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

    }
});
Run Code Online (Sandbox Code Playgroud)

或者如果您使用GET,则作为查询字符串参数:

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

    }
});
Run Code Online (Sandbox Code Playgroud)

所有这些都假设您的控制器操作当然采用id参数:

public ActionResult Action(string id)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

因此,您可以看到许多方法来实现相同的目标.