如何在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
相关产品推荐
相关产品推荐

