【问题标题】:how to send two parameters via jQuery to MVC Action with Url.Action helper如何使用 Url.Action 帮助器通过 jQuery 将两个参数发送到 MVC Action
【发布时间】:2018-05-30 19:30:01
【问题描述】:

我一直在处理 MVC4 C# 项目,在我的 Razor 视图中,当单击到期按钮时需要将两个参数发送到特定的 MVC 操作,我决定使用 jQuery 来发送这两个参数。

这是点击事件中的代码:

$('#salir').click(function () {
    window.location.href = '@Url.Action(actionName: "MostarOrdenInicioEmpleados", controllerName: "Home", new { id = Convert.ToString(Model.num_doc), grupo= Convert.ToInt32(Model.grupo)})';
});

这是我需要发送两个参数的控制器:

[HttpGet]
[Authorize]
public ActionResult MostarOrdenInicioEmpleados(string id, Int32 grupo)

但这是 Razor 视图中的错误:

错误文本:

命名参数说明必须出现在所有固定参数之后 已指定

你能告诉我问题是什么吗?

【问题讨论】:

    标签: jquery asp.net-mvc razor arguments


    【解决方案1】:

    您使用了两个命名参数(actionName:controllerName:之前您使用了一个固定的(即未命名的,具体定位的)参数(在这种情况下,它是您的参数开始new,您没有命名),而错误说您只能将命名参数放在 固定参数之后。

    所以要么

    a) 改变参数的顺序,使命名的在最后

    b) 命名所有参数,或

    c) 不要命名任何参数并确保它们符合预期的顺序。

    【讨论】:

      【解决方案2】:

      这只是说:如果您提供命名参数(在您的情况下,actionName:controllerName:),它们必须在之后非命名(又名固定参数)。

      在您的情况下,您可以通过将最终参数 (routeValues) 也设为命名参数来简单地解决此问题:

          window.location.href = '@Url.Action(actionName: "MostarOrdenInicioEmpleados", controllerName: "Home", routeValues: new { id = Convert.ToString(Model.num_doc), grupo= Convert.ToInt32(Model.grupo)})';
      

      【讨论】:

        猜你喜欢
        • 2016-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-02
        相关资源
        最近更新 更多