You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MVC4中用jQuery+Url.Action传双参数遇命名参数顺序错误求助

问题原因与解决方案

这个编译错误的根源很明确:C#的语法规则要求,当调用方法混合使用位置参数和命名参数时,所有命名参数必须放在未命名的位置参数之后。

你在调用@Url.Action时,前两个参数用了命名参数(actionName:和controllerName:),但第三个传递路由值的匿名对象是位置参数——这就违反了上述规则,所以编译器抛出了"Named argument specifications must appear after all fixed arguments have been specified"的错误。

两种可行的修复方案:

方案1:移除前两个参数的命名,使用位置参数

因为Url.Action的标准重载顺序就是actionName → controllerName → routeValues,直接按顺序传递参数即可:

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

方案2:给第三个参数也添加命名参数

如果想保留命名参数的可读性,可以给路由值参数也加上routeValues:的命名,这样所有参数都用命名方式,顺序就不受限制了:

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

额外说明

修复后,生成的URL会正确携带id和grupo参数,和你后端MostarOrdenInicioEmpleados Action的参数定义完全匹配,能正常接收参数值。

内容的提问来源于stack exchange,提问作者Pablo Tobar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:20:17