我正在尝试直接在ASP.NET网页上编写Javascript变量赋值代码。
int
此标记中的锚标记在点击时执行函数string
。此函数接受一个'
和两个\'
参数。当我尝试添加C#字符串变量来代替字符串参数时,它将它们替换为JavaScript关键字。我尝试使用\"
,body {
color: #fff;
font-family: sans-serif;
margin: 0;
padding: 0;
}
ul, li {
margin: 0;
padding: 0;
list-style: none;
}
ul {
display: flex;
height: 100vh;
}
li {
flex: 1;
transition: flex 300ms ease-out, color 200ms ease-out;
padding: 2%;
text-align: center;
color: rgba(255, 255, 255,0);
}
li:nth-child(1) {
background: #f2b635;
}
li:nth-child(2) {
background: #f19a2a ;
}
li:nth-child(3) {
background: #49b3e8 ;
}
li:nth-child(4) {
background: #00a0e6;
}
li:nth-child(5) {
background: #f25648;
}
li:hover {
flex: 3;
color: rgba(255, 255, 255, 1);
}
和{{1}},但错误仍然存在。那么,我们可以使用任何级别的嵌套引号吗?如果没有,我该如何解决?
答案 0 :(得分:1)
尝试在引号中包装实际值(参数),如下所示,
onclick=\"ShowArticleCard(" + a.Id + ",'" +
a.User + "','" + a.DateString + "'); // Remaining code
<强>更改强>
我从int类型参数中删除了单引号,并从字符串类型中删除了转义斜杠。它们可以简单地用作'
。现在,当代码运行时,它将被视为一个字符串。否则(如果值为数字)则忽略这些引号并按原样输入它们。只有字符串类型数据需要包含在'
或"
中。 在JavaScript中它们是相同的。在 C#中,'
和"
有不同的含义,你知道的很好。
提示 :此外,如果您正在编写用于客户端呈现的内容,例如在ASP.NET中,您可以轻松地将其编写为,
string.Format("<a href='{0}' onclick='func({1})'>My Link</a>",
hyperlink, param);
这将按照您的要求呈现。 :)单引号将在浏览器中呈现后转换为双引号。 或您可以在字符串前使用@
,并在字符串内写"
而不必转义它们。
答案 1 :(得分:0)
我想出了一种方法。我不知道为什么以前没有想到它。
我用\\'
附上了JavaScript函数的字符串参数。像这样:
ShowArticleCard(" + a.Id + ",\\'" + a.User + "\\',\\'" + a.DateString + "\\');
这样生成的代码将是:
ShowArticleCard(someid,\'someUser\',\'someDateString\');