18

我有一个 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?
    }
4

2 回答 2

50

如果您的控制器操作需要一个 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)
{
    ...
}

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

于 2012-07-22T11:46:05.033 回答
0

Darin 的方法可以很好地工作。

@Html.actionlink我会建议 Razor 视图在 jsp中使用模型值的另一种方法

var URLvalue='@Html.ActionLink("UserString", "action", new { routeValueName1 = "__value1__", routeValueName2="__value2__" }, htmlAttributes: new { @class = "btn btn-default", @role = "button" })'
     .replace('__value1__', Model.somevalue).replace('__value2__',  Model.somevalue);

您可以在 jsp 或 jquery 中的任何地方使用 URLvalue。

于 2020-08-24T07:42:42.763 回答