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

Razor Pages中JavaScript排序函数失效:为何需给Model变量加引号

问题原因解析

问题核心在于Razor渲染逻辑与JavaScript语法的匹配问题:

当你写let currentColumn = @Model.column;时,Razor会在页面渲染阶段直接把@Model.column替换成模型里的实际字符串值。比如如果Model.column的值是"Title",渲染后的JavaScript代码会变成:

let currentColumn = Title;

在JavaScript里,没有引号包裹的Title会被当作未定义的变量,浏览器执行到这里会直接抛出ReferenceError,导致整个sortTable函数失效,所以点击表头没有任何反应。

而加上引号后let currentColumn = "@Model.column";,渲染后的代码是:

let currentColumn = "Title";

这时候"Title"是标准的JavaScript字符串字面量,变量赋值正确,后续的排序逻辑就能正常运行。

别被模型里的变量类型迷惑——Razor只是负责把服务器端的值原封不动输出到页面,它不会自动判断你要输出的是JS字符串还是其他类型,必须手动添加引号来符合JavaScript的语法规则,让引擎识别这是一个字符串值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 15:37:05