【问题标题】:Accessing c# public property in javascript在javascript中访问c#公共属性
【发布时间】:2013-12-11 16:13:26
【问题描述】:

有什么方法可以访问 javascript 中的 C# 公共属性吗?

例如如果 C# 代码中有以下属性:

public int MyProperty { get; set; }

可以在 javascript 文件中访问此属性吗?

【问题讨论】:

  • 您是否尝试在 aspx 页面中访问它?如果是,请参阅 stackoverflow.com/a/1089271/961113
  • 不,不是直接来自JS。您必须通过 `var javaScriptVariable = ''; 在 ASPX 中打印属性服务器端的值;或类似的东西/
  • @Habib:我没有尝试在 aspx 页面中访问它。
  • @JasonEvans:谢谢。如果没有其他方法,我会按照您在 aspx 页面中所说的方式访问它,然后在我的 .js 文件中使用该 javascript 变量
  • Habib 和 Jason:感谢您的回复。正如你们都提到的,我会使用这种方式来访问属性,因为我认为这是我们可以做到的最好方式之一。

标签: c# javascript asp.net


【解决方案1】:

有几种方法

<script>
var prop = <%=MyProperty %>;
</script>

使用隐藏字段

html:

<input id="hiddenF" type="hidden" runat="server" />

在.cs后面:

protected void Page_Load(object sender, EventArgs e)
{
    hiddenF.Value = MyProperty;
}

然后通过 getElementById().Value 获取值

使用 ASP.NET MVC razor 引擎传递模型

<script>
var prop = @Model.MyProperty;
</script>

【讨论】:

    【解决方案2】:

    您可以在 inline syntax 的帮助下在您的 .aspx 页面中引用任何 public/protected 属性值

    C#

    public string MyProperty{get;set;}
    

    .aspx

     <script language="javascript" type="text/javascript">
        var propValue= <%= MyProperty%>; // available in window/global context
        //var propValue= '<%= MyPublicMethod("parameter")%>'; 
     </script>
    

    JS

    function getMyValue(){
       return propValue; // since it is written as part of page HTML, you can get it
    }
    

    INLINE Syntax in ASP.NET 的更多参考

    【讨论】:

      【解决方案3】:

      不可以,但是你可以将值放入隐藏字段并从js访问它。

      或者你可以制作服务器方法并从JS调用它。

      【讨论】:

        【解决方案4】:

        该变量在 JavaScript 中不存在,因为它运行在与 C# 代码不同的机器上。 C# 在服务器上运行,而 JavaScript 在客户端的浏览器上运行。

        让您的页面将属性写入动态生成的 javascript var 或 HTML 隐藏字段。

        【讨论】:

          猜你喜欢
          • 2012-08-13
          • 2014-05-04
          • 1970-01-01
          • 2011-12-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-22
          相关资源
          最近更新 更多