我已经阅读了很多线程,但我无法弄清楚为什么这样做不起作用。我正在创建一个将用作导航栏的SharePoint Web部件。一切都很好,直到我尝试在JS代码中引用C#变量。引用C#JavaScript中的变量
下面是从VisualWebPart1UserControl.ascx.cs我的C#:
public class myClass
{
public string theValue = "hi";
}
下面是HTML/JS从VisualWebPart1UserControl.ascx页:
<script type="text/javascript">
function getMyValue() {
var myVar = "<%= myClass.theValue %>";
alert(myVar);
}
<li><a href="http://maindt"
onmouseover="getMyValue(), mopen('m1')"
onmouseout="mclosetime()">MAINDT Home</a>
<div id="m1"
onmouseover="mcancelclosetime()"
onmouseout="mclosetime()">
<a href="">Site 1</a>
<a href="">Site 2</a>
<a href="">Site 3</a>
</div>
</li>
当我将鼠标悬停在“MaindDT Home”下拉菜单上时,会发生什么情况?我收到警报(myVar),它是goo d,但内容是<%= myClass.theValue%>当我期待它显示值“Hi”的值
谢谢!这非常有帮助。我遇到一个错误,它似乎与代码行'onmouseover =“getMyValue('m1',<%:myValue%>); mopen('m1');”'。错误是c:\ Program Files \ Common Files \ microsoft shared \ Web Server Extensions \ 14 \ TEMPLATE \ CONTROLTEMPLATES \ SPListWebPart \ VisualWebPart1 \ VisualWebPart1UserControl.ascx(27):error CS1525:Invalid expression term':' – mwilson
当我更改它时到'onmouseover ='getMyValue('m1',<%= myValue%>); mopen('m1');“'我得到错误:c:\ Program Files \ Common Files \ microsoft shared \ Web Server Extensions \ 14 \ TEMPLATE \ CONTROLTEMPLATES \ SPListWebPart \ VisualWebPart1 \ VisualWebPart1UserControl.ascx(21):错误CS0246:无法找到类型或命名空间名称'var'(缺少使用指令或程序集引用吗?) – mwilson
噢,如果<% :myValue%>不工作尝试<%= Server.HtmlEncode(myValue)%>,它实际上是一样的 - 但更早的只适用于asp.net> = 4.0 –