Url.Action和两个变量

时间:2013-03-29 07:36:15

标签: c# asp.net-mvc-3

我有@Html.PagedListPager(Model, page => Url.Action("GetTabData", new { page })

在我的js文件中,我已经准备好使用myTab变量,我需要在上面的示例中与页面一起发送。

我该怎么做?

更新: 我正在使用js变量来确定用户单击哪个选项卡,并根据该值我正在查询数据。现在我已经实现了使用上面生成的链接的分页。有了这个,我的ajax调用发送activeTab就被打破了,我需要将这个值和页面一起发送到Url.Action上面。

这是js变量,我用它来发送ajax以确定哪个标签是用户点击

$(function () {
    var activeTab = null;
    $('#tabs .tabLink').click(function (event) {
        var activeTab = $(this).attr('href').split('-')[1];
        GetTabData(activeTab);        
    });
    GetTabData(ommitted on purpse)

});

1 个答案:

答案 0 :(得分:0)

我不明白这个问题,但我在这里猜测。不知道这是不是你想要的。

注意 - 你的javascript和cshtml代码都有GetTabData,我希望这只是巧合,因为js函数不能以这种方式通过@Url.Action调用。

如果您需要将两个值作为URL的一部分发送,则可以以RESTful方式执行此操作,也可以使用查询字符串。

选项1 -

Url.Action("GetTabData", new { page=2, tab="blah" })

您的相应控制器操作看起来像

public ActionResult GetTabData(int page, string tab)
{
...
}

选项2 - 创建一个查询字符串并将其附加到URL

/GetTabData?page=2&tab=blah

在这种情况下,控制器操作将如下所示

public ActionResult GetTabData()
{
    var params = Request.QueryString;
...
}