簡體   English   中英

從代碼中獲取屬性到aspx頁面

[英]get property from code behind into aspx page

是否有可能將屬性(get; set;)從代碼隱藏(aspx.cs)文件中的名稱變成jquery?

是的,取決於您的框架:

<script type="text/javascript">
var someProp = "<% = this.PropertyName; %>";
</script>

您可能會遇到編碼問題,因此請確保轉義javascript的值。

是的。 如果您的腳本在aspx頁面中內嵌,只需使用ASP標記將其放入腳本中。

<html.....
<script type="text/javascript">
    public function myJSFunction()
    {
        var x = '<%= Name %>';
       ...
    }
</script>

如果你的腳本不是內聯的,即它來自一個單獨的javascript文件,你有幾個選擇。

  1. 您可以使用上面的技術將所需的變量添加到頁面中,然后您的外部javacript可以引用它。

  2. 您可以通過在屬性窗口中將其內容類型更改為“Embedded Resource”,然后使用以下內容將外部javascript文件設置為Web資源:

    [assembly: WebResource("myJS.js", "text/javascript", PerformSubstitution=true)]

WebResourceAttribute上使用“PerformSubstitution”標志將使得文件在呈現之前通過asp解析器運行,並且它將替換它在文件中找到的任何ASP標記。 Web資源有一些缺點,所以你應該在決定使用它們之前閱讀它們。

您可以使用這樣的受保護屬性, var name = '<%= Name %>';

或者從代碼隱藏生成JavaScript代碼並使用ClientScript.RegisterClientScript*注冊到客戶端

您可以使用隱藏的輸入控件並在屬性中設置它的值。 然后,您可以通過訪問隱藏變量的值來訪問屬性的值。

aspx頁面

<asp:HiddenField id="hiddenField1" runat="server">

代碼背后

Public Property MyProperty as String
Get
   Return hiddenField1.Value
End Get
Set(value as string)
  hiddenField1.Value = value
End Set

jQuery的

var hValue = $('#<%= hiddenField1.ClientID %>').val();

在代碼隱藏中添加以下內容:

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ClientVariable", "var clientVariable = '" + clientValue + "';", true);

其中clientValue是您希望可訪問的值,方法是在客戶端代碼中使用常規的javascript變量clientVariable。

不要在最后省略'true'參數,因為默認情況下不添加腳本標記,這會阻止腳本工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM