2

我有一个 url,我必须在其中发送一些属性值。我的财产如下

 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 %>"

但这不会到来。它给出了解析器错误。如何做到这一点?

4

2 回答 2

2

如果你的 JavaScript 位于一个单独的文件中,你不能使用<%= %>在那里定义变量,你应该使用hidden fields, cookies和类似的东西

但是如果你可以把js放在aspx页面中,它应该可以工作

<head runat="server">
    <title></title>
    <script type="text/javascript">
        alert('<%= MyProperty %>');
    </script>
</head>

这对我有用,其中 MyProperty 是我的 aspx 页面中的公共字符串属性,请确保正确放置引号

编辑

这是我的页面

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; }
}
于 2012-11-29T11:31:30.283 回答
0

@Mihir:您使用了 '<%= MyValue %>" ,它的开头有一个单引号。在开头和结尾都使用双引号。

试试这个: "<%= MyValue %>"

可能它会工作。

您还可以使用 Screenfields 将值从一页发送到另一页。

于 2012-11-29T11:49:12.033 回答