我有一个网址,我必须发送一些属性值。我的财产如下
public string MyValue
{
get { return MyValue; }
set { MyValue = value; }
}
现在我想将此值作为参数发送到javascript中window.open方法中的url。
window.open("../SearchPage/MySearch.aspx?MyValue=","left=20,top=20,width=500,height=500")
我试图在javascript中访问
'<%= MyValue %>"
。
但这不会到来。它给出了解析器错误。怎么做到这一点?
答案 0 :(得分:2)
如果您的JavaScript位于单独的文件中,则无法使用<%= %>
来定义变量,您应该使用hidden fields, cookies
和类似的东西
但是如果你可以将js放在aspx页面中,它应该可以工作
<head runat="server">
<title></title>
<script type="text/javascript">
alert('<%= MyProperty %>');
</script>
</head>
这适用于我,我的aspx页面中的MyProperty是公共字符串属性,请确保正确地输入引号
修改强>
这是我的页面
public partial class WebForm1 : System.Web.UI.Page
{
public string MyProperty { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
MyProperty = "aaaaaaaaa";
}
}
修改强>
顺便说一句
public string MyValue
{
get { return MyValue; }
set { MyValue = value; }
}
不会导致设置StackOverflowException,你应该创建私有变量来存储值:)
private string _myValue;
public string MyValue
{
get { return _myValue; }
set { _myValue = value; }
}
答案 1 :(得分:0)
@Mihir:你使用了'&lt;%= MyValue%&gt;',它在开头有一个引号。在开头和结尾都使用双引号。
试试这个: “&lt;%= MyValue%&gt;”。
可能它会起作用。
您也可以使用“屏幕字段”将值从一个页面发送到另一个页面。