[英]How to use a razor page string variable in javascript? - show alert with C# string
[英]Pass string variable in C# to javascript function for use in alert box
所以我要做的是在调用函数时将包含我在C#中的错误消息的简单字符串变量传递给我的javascript函数。 我的函数调用工作正常,但它一直输出错误的东西。 这可能也很重要,我在我的Global.asax.cs文件中调用Response.Write片段,我的javascript文件在我的MVC项目的Scripts文件夹中。 根据我发现的研究,这是我在评论的帮助下目前所拥有的:
function KickOutUnwantedUsers(aMesssage) {
console.log("Inside KickOutUnwantedUsers"); //for debugging
console.log(aMesssage); //for debugging
alert(aMessage);
window.open('', '_self').close();
}
它只是继续输出这个
<%=errorMessage%>
我不知道如何修复它,因为我发现的所有内容都表示以这种方式传递变量,但我想知道是否需要将它作为实际参数传递给函数,如果是,那该怎么做那。
更新:这是C#代码:
else
{
string user = s.Remove(0, 4);
string errorMessage = "THE FOLLOWING ERRORS MIGHT HAVE OCCURRED: " + user +
" has either been disabled or the account does not exist." +
" PLEASE CONTACT YOUR ADMINISTRATOR. ";
Response.Write("<script type=\"text/javascript\" src=\"Scripts/HelpfulFunctions.js\">");
Response.Write("</script>");
Response.Write("<script type=\"text/javascript\">");
Response.Write("KickOutUnwantedUsers('" + errorMessage + "');");
Response.Write("</script>");
}
解决了
@Igor在评论中非常有帮助,我按照他的建议做了一些事情,由于某种原因起初不起作用,但第二天我删除了我的JavaScript文件,用相同的名称重新创建它并重新输入javascript代码和有效。 编码很奇怪。 我一定有错字或什么的。
这就是(错误记录的) HttpUtility.JavaScriptStringEncode
的用途:
// the second argument "true" causes quotation marks to be inserted as well
var message = <%= HttpUtility.JavaScriptStringEncode(errorMessage, true) %>;
第一。 这样的行
var message = '<%=errorMessage%>';
只在ASP.NET标记文件中有意义。 在js文件中它没有意义,因为ASP.NET服务器端不处理javascript文件。
第二。 由于您将消息字符串作为参数传递,因此需要函数签名来反映:
function KickOutUnwantedUsers(aMessage) {
alert(aMessage);
window.open('', '_self').close();
}
- 请注意参数值周围的引号:
Response.Write("KickOutUnwantedUsers('" + errorMessage + "');");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.