1

我正在尝试将字符串从 javascript 传递给剃须刀 ActionLink

string filtering =$("#Hello").val();

@Html.ActionLink(Name, ControllerName, new { sort = columm, order = orderby, filters = filtering })

但是我无法访问此变量,我已经尝试过@:filtering,或者"@filtering"无论如何都不起作用,

如何将变量传递给控制器​​?

4

3 回答 3

0

我可以做到的方式是将Url传递给控制器 window.location = window.location.protocol + "//" + location.host + "/Name/Controller/" + "?sort=sort" + "&order=order" + "&page=page" + "&filters=" + filter;

于 2013-03-04T17:02:47.260 回答
0

您必须使用 jQuery 手动将参数添加到 URL 以分配href锚标记的属性。

首先,让我们去掉你的过滤器参数ActionLink并给它一个ID(这样我们就可以在jQUery中引用它):

@Html.ActionLink(Name, Controller, new { sort = columm, order = orderby }, new { id = "myLink" })

然后执行以下 jQuery:

$(function () {
    var newLink = $("#myLink").attr("href") + "?filter= " + $("#Hello").val();
    $("#myLink").attr("href", newLink); 
});
于 2013-03-04T12:23:36.650 回答
0

如果您想将数据发送或发布到控制器的操作,那么您可以试试这个...

 <input type="submit" id="btnFilter" value="Filter" name="btnFilter" />

$('#btnFilter').click(function () {

        var sort = sortValue;
        var order = orderValue;
        var filter= filterValue;

   $.ajax({
            type: 'POST',
            url: '@Url.Action(ActionName, ControllerName)',
            data:'{"sort":"' + sort+ '","order":"' + order+ '","filter":"' + filter+ '"}',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (result) {


            },
            error: function () {

            }
        });

});

然后....在控制器动作中

public ActionResult ActionName(string sort ,string order , string filter)
{
    // do Something here....
}
于 2013-03-04T12:12:45.513 回答