【发布时间】:2012-04-05 00:29:46
【问题描述】:
我打算将一个变量从 asp.net 服务器传递到 javascript,但出现异常。
当前上下文中不存在名称“序列化程序” 在我的 Admin.aspx.cs
protected static string urlEdit;
protected void Page_Load(object sender, EventArgs e)
{
// blah blah...
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
}
然后在标记代码中:
<script type="text/javascript">
function Edit_Click() {
var options = SP.UI.$create_DialogOptions();
options.url = <%= serializer.Serialize(urlEdit) %>;
};
【问题讨论】:
-
您的变量必须能够被生成的页面标记访问,因此请在 Page_Load 之外声明它。我提出了一个解决方案,它可以被认为是隐藏字段的更好实践。
-
@ericosg 隐藏字段不是好习惯...
-
@user1090190 为什么隐藏字段不是很好的做法?
-
@jrummell 为什么要在不需要时发送额外数据?
-
这取决于问题的上下文。如果您需要额外的数据,那么它不会是额外的。
标签: javascript asp.net