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

如何在ASP.NET Core 6 MVC控制器中动态创建jQuery函数名?

解决ASP.NET Core 6 MVC动态生成带变量后缀的jQuery函数名问题

你的问题出在C#字符串拼接的语法错误,正确做法是使用C#的字符串插值(前缀加$)来动态插入sid变量,同时要修正JavaScript代码里的引号和参数格式问题:

修正后的代码示例

// sid是循环内的变量,每次循环赋值不同值
string sid = "1"; // 建议用字符串类型避免隐式转换问题
DataRow dr = ...; // 你的DataRow对象

// 使用$进行字符串插值,直接在{}里引用变量
string fn = $@"function test_{sid}() {{
             var params = 'top=0, left=0, width=' + screen.width + ', height=' + screen.height + ', minimizable=no, statusbar=no, toolbar=no, location=no, directories=no, menubar=no, resizable=no, copyhistory=no';
             params += ', scrollbars=yes, status=no, fullscreen=yes';
             var url = document.URL;
             newwin = window.open('/user/instruction?p1={sid}&p2={dr["DifficultyLevel"]}&s1=d&p3={dr["DifficultyLevel"]}', '_blank', params);
         }}";

关键修正点

  • 用$@""(逐字字符串+插值)替代原字符串拼接方式,直接在字符串内用{sid}插入变量,循环时会自动生成带不同后缀的函数名test_{sid}。
  • 修正window.open参数格式:第二个参数_blank需用引号包裹,第三个参数params确保是完整字符串,原代码引号位置错误会导致JavaScript语法失效。
  • 简化params拼接逻辑,去掉多余空格让参数格式更规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:58:14