剃刀视图中的Javascript url操作

Javascript url action in razor view

本文关键字:url 操作 Javascript 视图 剃刀      更新时间:2024-01-07

我有一个获取rowid的javascript方法onRowSelected。如何在具有HttpGet的控制器的某些操作中传递rowid?

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

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

正如你所看到的,有很多方法可以实现同样的目标。

Darin的方法将非常完美。

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

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。