从ascx访问ascx.cs

时间:2014-03-18 06:26:52

标签: c# javascript

我正在尝试从ascx文件的javascript访问ascx.cs文件中的列表.ascx.cs文件中的列表如下所示。

public List<String> samplelist
{
     get { return samplelist; }
     set { samplelist = value; }
}

在我的ascx中,我想从Javascript中访问相同内容。

<script>
  function calllist() {
  // I want to access the  list named "samplelist" here.
  }
 </script>

请帮助我如何访问javascript中的列表。

4 个答案:

答案 0 :(得分:0)

不,因为ascx控件不代表可以从客户端计算机访问的真实URL。他们纯粹是服务器端,意味着嵌入其他页面。

您可能想要做的只是拥有一个aspx页面,它提供了您在ascx文件中当前拥有的相同html片段。 aspx页面不一定需要提供完整的html文档(等等),它只能呈现您感兴趣的用户控件。

来源:calling an ascx page method using jquery

答案 1 :(得分:0)

我假设你在这里使用ASP.NET Web表单。您无法从javascript访问C#代码中的变量/方法/属性等,因为它们永远不会被渲染。您的所有c#代码实际上都是在DLL文件中编译的,并且驻留在服务器中。

如果您需要将列表从服务器返回到前端浏览器(或javascript),则可以使用隐藏字段。只需将变量设置为隐藏字段的值,然后从javascript访问它。

答案 2 :(得分:0)

它是一个公共变量。您可以像在JavaScript代码中一样访问它

<%= samplelist %>

答案 3 :(得分:0)

如果您不需要对服务器端列表的写访问权限,可以将其序列化为JSON并将其嵌入JavaScript中,然后像JavaScript数组一样访问它......

代码背后:

using System.Web.Script.Serialization;

public List<String> samplelist
{
     get { return samplelist; }
     set { samplelist = value; }
}

public string sampleListJson()
{
    var jsonSerializer = new JavaScriptSerializer();
    return jsonSerializer.Serialize(samplelist);
}

JavaScript的:

<script>
    var samplelist = <%= sampleListJson() %>;

    function calllist() {
        alert(samplelist[0]);  
    }
</script>