是否有可能将属性(get; set;)从代码隐藏(aspx.cs)文件中的名称变成jquery?
答案 0 :(得分:7)
是的,取决于你的框架:
<script type="text/javascript">
var someProp = "<% = this.PropertyName; %>";
</script>
您可能遇到编码问题,因此请确保转义javascript的值。
答案 1 :(得分:5)
是的。如果您的脚本在aspx页面中内联,只需使用ASP标记将其放入脚本中。
<html.....
<script type="text/javascript">
public function myJSFunction()
{
var x = '<%= Name %>';
...
}
</script>
如果您的脚本不是内联的,即它来自单独的javascript文件,那么您有几个选项。
您可以使用上述技术将所需的变量添加到页面中,然后外部javacript可以引用它。
您可以通过在属性窗口中将其内容类型更改为“Embedded Resource”,然后使用以下内容将外部javascript文件设置为Web资源:
[assembly: WebResource("myJS.js", "text/javascript", PerformSubstitution=true)]
在WebResourceAttribute上使用“PerformSubstitution”标志会使文件在呈现之前通过asp解析器运行,并且它将替换它在文件中找到的任何ASP标记。 Web资源有一些缺点,所以你应该在决定使用它们之前阅读它们。
答案 2 :(得分:1)
您可以使用此类受保护的属性var name = '<%= Name %>';
或者从代码隐藏生成JavaScript代码并使用ClientScript.RegisterClientScript*
答案 3 :(得分:0)
您可以使用隐藏的输入控件并在属性中设置它的值。然后你可以通过访问隐藏变量的值来访问属性的值。
离
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();
答案 4 :(得分:0)
在代码隐藏中添加以下内容:
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ClientVariable", "var clientVariable = '" + clientValue + "';", true);
其中clientValue是您希望可访问的值,方法是在客户端代码中使用普通的javascript变量clientVariable。
不要在最后省略'true'参数,因为默认情况下不添加脚本标记,这会阻止脚本工作。