从aspx.cs获取javascript中的变量

时间:2014-06-17 08:38:09

标签: javascript asp.net

我有一个名为MyForm.aspx的aspx表单。在这种形式中,我包含了一个javascript文件:

<script type="text/javascript" src="Scripts/MyForm.js"></script>

在MyForm.aspx.cs中,a有一个属性:

public string Username { get; set; }

如何在MyForm.js中访问此Username变量?

我尝试了以下方式,但它不起作用: var username = '<%=this.Username%>'

2 个答案:

答案 0 :(得分:1)

从服务器端通用处理程序文件调用javascript:

<script type="text/javascript" src="cogs/awesomejavascript.ashx"></script>

从处理程序文件中输出所有javascript:

public void ProcessRequest (HttpContext ctx)
{
        ctx.Response.ContentType = "text/plain";
        StringBuilder bild = New StringBuilder;
        bild.Append("var username = " + this.username);
        ctx.Response.Write(bild.ToString);

}

如果您对处理程序文件不满意,可以使用ascx文件。

答案 1 :(得分:0)

JavaScript引擎无法解析服务器&lt;%= this.Username%&gt; JS文件中的代码,因为服务器标记不是其规范的一部分。这些服务器括号只能由ASP.NET引擎在aspx / ascx文件中解析。

您可以在MyForm.js文件中创建一个函数,该函数接受用户名字段的ID作为参数getUserName(userName){return userName;}并从MyForm.aspx页面调用该函数,如下所示:

[MyForm.aspx]

var username = '<%=this.Username%>';
getUserName(userName);

[MyForm.js]

getUserName(userName)
{
   return userName;
}