【发布时间】:2009-12-17 20:21:02
【问题描述】:
是否可以将属性(get; set;)说名称从代码隐藏(aspx.cs)文件中获取到jquery?
【问题讨论】:
-
如果你想将属性的值传递给你的 JQuery,你可以将它传递给一个隐藏字段,然后从 JQuery 中获取它。
是否可以将属性(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 文件,您有几个选择。
您可以使用上述技术将所需的变量添加到页面中,然后您的外部 javacript 可以引用它。
您可以通过在属性窗口中将外部 javascript 文件的内容类型更改为“嵌入式资源”,然后使用以下命令,将外部 javascript 文件变为网络资源:
[assembly: WebResource("myJS.js", "text/javascript", PerformSubstitution=true)]
在WebResourceAttribute 上使用“PerformSubstitution”标志将使文件在呈现之前通过 asp 解析器运行,并且它将替换它在文件中找到的任何 ASP 标记。不过,Web 资源有一些缺点,因此您应该在决定使用它们之前阅读它们。
【讨论】:
Name,设置属性怎么样?如何从 jquery/javascript 设置此 Name 属性?
您可以像这样使用受保护的属性,var name = '<%= Name %>';
或者从codebehind生成JavaScript代码并使用ClientScript.RegisterClientScript*注册到客户端
【讨论】:
在代码隐藏中添加以下内容:
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ClientVariable", "var clientVariable = '" + clientValue + "';", true);
其中 clientValue 是您希望通过在客户端代码中使用普通 javascript 变量 clientVariable 访问的值。
最后不要省略'true'参数,因为默认是不添加脚本标签,这会阻止脚本工作。
【讨论】:
您可以使用隐藏的输入控件并在属性内设置它的值。那么你可以通过访问隐藏变量的值来访问属性的值。
前
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();
【讨论】: