通过C#和ASP.Net从JSON打开URL

通过C#和ASP.Net从JSON打开URL,c#,asp.net,json,C#,Asp.net,Json,我有可变的URL字符串,这些字符串从外部JSON块读入C#代码中 然后,我在一个表中创建可点击的按钮,需要打开一个新窗口并启动这些URL。它们保存在对象的字符串变量中 但是,我无法在aspx端找到一个函数,该函数在单击时打开一个窗口并使用URL字符串 目前,我正在向按钮添加一个属性 Button b = new Button(); b.Attributes.Add("onClick", "OpenURL()"); bCell.Controls.Add(b); 有了这个,我可以打开一个窗口,但

我有可变的URL字符串,这些字符串从外部JSON块读入C#代码中

然后,我在一个表中创建可点击的按钮,需要打开一个新窗口并启动这些URL。它们保存在对象的字符串变量中

但是,我无法在aspx端找到一个函数,该函数在单击时打开一个窗口并使用URL字符串

目前,我正在向按钮添加一个属性

Button b = new Button();
b.Attributes.Add("onClick", "OpenURL()");
bCell.Controls.Add(b); 
有了这个,我可以打开一个窗口,但我似乎无法将我从JSON字符串反序列化的URL转换到OpenURL()

功能在前端

由于url不同,我无法在任何地方硬编码它

所有按钮、行和单元格都是从JSON字符串动态生成的。因此,在这些机器上不可能进行硬编码。
//第一次海报。试图寻找解决方案但失败

如果您在创建按钮时知道url是什么,您可以执行以下操作:

Button b = new Button();
var url = "some url";
b.Attributes.Add("onClick", string.Format("OpenURL({0})",url));
bCell.Controls.Add(b); 
如果在加载页面之前不知道url,可以将其存储在页面上的变量中,并在单击链接时检索它

<script>
    var url;

    //have whatever you use to set the url call this function
    function setUrl(inputUrl){
        url = inputUrl; 
    }

    function OpenURL(){
        var x = window.open(url,'some window');
    }
</script>

var-url;
//使用任何设置url的方法调用此函数
函数setUrl(inputUrl){
url=输入url;
}
函数OpenURL(){
var x=window.open(url,'somewindow');
}

如果您在创建按钮时知道url是什么,您可以执行以下操作:

Button b = new Button();
var url = "some url";
b.Attributes.Add("onClick", string.Format("OpenURL({0})",url));
bCell.Controls.Add(b); 
如果在加载页面之前不知道url,可以将其存储在页面上的变量中,并在单击链接时检索它

<script>
    var url;

    //have whatever you use to set the url call this function
    function setUrl(inputUrl){
        url = inputUrl; 
    }

    function OpenURL(){
        var x = window.open(url,'some window');
    }
</script>

var-url;
//使用任何设置url的方法调用此函数
函数setUrl(inputUrl){
url=输入url;
}
函数OpenURL(){
var x=window.open(url,'somewindow');
}

在将url传递到window.open之前,检查是否可以对其进行编码。您可以在这里查看详细信息-我在URL编码方面没有问题。如果不将值直接硬编码到“OpenURL()”方法中,我就无法找到将URL发送到.aspx页面的方法。示例:我想做“OpenURL(var)”,但它是逐字读出来的。因此,我必须执行“OpenURL(www.google.com)”,这违背了可变URL的目的。如果我问得不好,很抱歉。您是否尝试过“OpenURL(“+var+””),或者您也可以使用浏览器存储:本地存储?在将url传递给window.open之前,请检查是否可以对其进行编码。您可以在这里查看详细信息-我在URL编码方面没有问题。如果不将值直接硬编码到“OpenURL()”方法中,我就无法找到将URL发送到.aspx页面的方法。示例:我想做“OpenURL(var)”,但它是逐字读出来的。因此,我必须执行“OpenURL(www.google.com)”,这违背了可变URL的目的。如果我问得不好,很抱歉。您是否尝试过“OpenURL(“+var+””),或者您也可以使用浏览器存储:本地存储?谢谢,这很有帮助。我没有想到以这种方式使用替换字符串。谢谢,这很有帮助。我没有想到以这种方式使用替换字符串。