我已經閱讀了很多線程,但我無法弄清楚爲什麼這樣做不起作用。我正在創建一個將用作導航欄的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 –