【问题标题】:How do you send multiple parameters in a Url.Action?如何在 Url.Action 中发送多个参数?
【发布时间】:2014-08-02 10:04:00
【问题描述】:

如何在Url.Action 中发送多个参数?

我有一个带有动作的控制器,我想要 2 个参数,但没有收到第二个参数。

我的代码是:

@Url.Action("Products", "Jquery", new { categoryid = 1, Productid = 2})

Publc Action Jquery(int categoryid ,int Productid)
{

}

但我只收到categoryid,每次Productid 为空。

请告诉我该怎么做?

【问题讨论】:

  • 您将categoryid 指定为字符串,但在Jquery 操作方法中,签名将int 用于categoryid。试试new { categoryid = 1, Productid = 2 }
  • 我不确定是不是拼写错误,但返回类型应该是ActionResult 并且参数是混合的.. 应该是@Url.Action("actionName", "controllerName", "object params")
  • @robwaminal 你能告诉我如何在这里使用“对象参数”吗?
  • 您在对象参数上是正确的,但似乎 actionNameJquerycontrollerName 互换了 Products 我的压力
  • yes Products 是控制器,Jquery 是动作名称,现在我想发送 2 个参数,但第 2 个参数没有收到。

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


【解决方案1】:

像这样试试。

@Url.Action("Jquery", "Products", new { @categoryid = 1, @Productid = 2})

public ActionResult Jquery(int categoryid, int Productid)
{
    return View();
}

您应该在操作中获得 2 个参数。假设Jquery Action 在ProductController

【讨论】:

  • 我试过这个,但它不起作用,无法接收第二段。它始终为空
  • 在您的 param 对象参数上添加 @ 应该可以解决问题
  • 实际上,是否在参数前面加上@ 并不重要。它仍然适用于第一个。我不知道如何解释。也许你有一些拼写错误?
  • 我有同样的问题,这对我不起作用,实际上,问题在于它构建的 url 添加了这样的特殊字符:/Controller/Action?param1=foo&param2=fooo
【解决方案2】:

您是从 JQuery 调用此操作吗?听起来你可能来自症状(或者至少@roberto 可能是);如果是这样,请将其包装在 Html.Raw:

@Html.Raw(@Url.Action("Jquery", "Products", new { @categoryid = 1, @Productid = 2}));

【讨论】:

  • 这对我有用。我不必为变量名添加@
【解决方案3】:

我遇到了同样的问题,添加了@但没有用。

对我有用的是@Html.Raw 指令。

@Html.Raw(@Url.Action("Jquery", "Products", new { categoryid = 1, Productid = 2}))

public ActionResult Jquery(int categoryid, int Productid)
{
    return View();
}

这样可以获取控制器中的所有参数,而不仅仅是第一个。

【讨论】:

    【解决方案4】:

    我知道这是一篇旧帖子,但我也只能靠它周围的 Html.Raw 函数感到幸运。从 jQuery 调用时,添加 @ 似乎没有帮助。 以下是使用 jsTree 时它在页面上的工作方式。

        $.ajax({
            cache: false, 
            type: 'POST',
            url: '@Html.Raw(@Url.Action("GetGenTreeData", "Documents", new { folder = "Docs", treeTitle = "Listed Board Documents" }))',
            dataType: 'json',
            success: function(data) {
                $('#docTree').jstree({
                    'core': {
                        'data': data
                    }
                });
            },
    

    【讨论】:

      猜你喜欢
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 1970-01-01
      • 2018-11-06
      • 2016-07-16
      • 1970-01-01
      相关资源
      最近更新 更多