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

如何去除MVC CSHTML中JS代码块内<text>生成的多余空格?

解决MVC CSHTML中JavaScript字符串多余空格问题

我太懂这个小困扰了!在MVC项目的CSHTML文件里写JavaScript代码时,用Razor的if-else拼接字符串,else分支输出很干净,可if分支总是莫名带前后多余空格,确实烦人。

你的原始代码问题

你之前写的代码是这样的:

var url = '@if (@HttpContext.Current.Session["id"].ToString() == "1") { <text>Testing one two three</text> } else { @Url.Action("GetCustomer", "Customer") }';

执行else分支时能得到完美结果:var url = '/Customer/GetCustomer';,但if分支却会变成:var url = ' Testing one two three ';——这是因为Razor会把<text>标签周围的换行、空格都直接渲染进最终输出里。

完美解决方案(感谢Ciubotariu Florin)

换成Razor三元表达式写法,并用括号把整个表达式包裹起来,就能直接输出无多余空格的字符串:

var url = '@(HttpContext.Current.Session["id"].ToString() == "1" ? "Testing one two three" : Url.Action("GetCustomer", "Customer"))';

这样不管走哪个分支,生成的JavaScript字符串都干净利落——if分支会精准得到var url = 'Testing one two three';,完全符合你的需求!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:10:14