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

Html.Raw结合Url.Action语法报错:Uncaught SyntaxError正则标志无效

解决Uncaught SyntaxError: Invalid regular expression flags错误

这个问题的根源很清晰——你的JavaScript代码把Url.Action生成的URL当成了正则表达式来解析,而不是字符串!

为什么会这样?

当你直接写:

var url = @Html.Raw(@Url.Action("Edit", "Home", new {target = "_blank" , Id = @Model.Id}));

Url.Action会生成类似/Home/Edit/1?target=_blank这样的URL,经过Html.Raw输出后,最终浏览器看到的JS代码是:

var url = /Home/Edit/1?target=_blank;

JS会把以斜杠/包裹的内容识别为正则表达式,而后面的target=_blank被当成了正则的标志位,但这些字符并不是合法的正则标志(合法的比如g、i、m等),所以就抛出了Invalid regular expression flags错误。

修复方案

只需要给生成的URL加上引号,把它明确标记为JavaScript字符串即可:

var url = '@Html.Raw(@Url.Action("Edit", "Home", new {target = "_blank" , Id = @Model.Id}))';

或者更严谨一点,用Json.Encode来确保URL里的特殊字符被正确转义(比如如果URL里有引号或者其他特殊字符时更安全):

var url = @Html.Raw(Json.Encode(Url.Action("Edit", "Home", new {target = "_blank" , Id = @Model.Id})));

这样最终输出的JS代码会是带引号的字符串,JS就会正确识别它为URL字符串,而不是正则表达式了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:41:46