如何在window.open方法的url末尾发送C#属性作为参数

时间:2012-11-29 11:10:04

标签: c# javascript

我有一个网址,我必须发送一些属性值。我的财产如下

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

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

2 个答案:

答案 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;”

可能它会起作用。

您也可以使用“屏幕字段”将值从一个页面发送到另一个页面。