在代码隐藏文件中编写脚本代码并从中获取值

时间:2013-03-19 16:00:17

标签: javascript asp.net

我正在使用此脚本,并返回与我的IP地址相关的信息

<script language="Javascript" src="http://gd.geobytes.com/gd?after=-1&variables=GeobytesCountry,GeobytesCity,GeobytesRegion,GeobytesLatitude,GeobytesLongitude">
</script>


<script language="Javascript">
    document.write("<p>Welcome to visitors from " + sGeobytesCity + ", " + sGeobytesCountry + ", " + sGeobytesRegion + ", " + sGeobytesLatitude + ", " + sGeobytesLongitude);
</script>

有没有办法在代码隐藏文件(aspx.cs)中使用这个脚本并将它们存储到某个变量中...

protected void Page_Load(object sender, EventArgs e)
{
string city = sGeobytesCity;
}

3 个答案:

答案 0 :(得分:1)

使用asp文字控件。

document.write('<p>Welcome to visitors from <asp:Literal id="sGeobytesCity" runat="server"' />);

然后在你的代码中。

sGeobytesCity.Text = HttpUtility.JavaScriptStringEncode("yourCityNameHere");

javascript编码器的主要目的是删除任何可能过早终止字符串的单个撇号或双引号,从而允许javascript错误或恶意注入。

答案 1 :(得分:0)

尝试在hidden输入runat=server中保存脚本中的数据,然后从后面的代码中访问此隐藏的输入。

<input type="hidden" runat="server" id="hiddenData" />

然后

string data = hiddenEntityId.Value; //to get the data back

答案 2 :(得分:0)

是的,但这并不简单。在javascript中,浏览器正在处理所有“打开Web请求,为您获取结果”。 它正在运行javascript,您可以将值放入变量中。 在代码背后,你自己做。此示例来自http://msdn.microsoft.com/en-GB/library/system.net.webrequest.aspx

// Create a request for the URL.        
WebRequest request = WebRequest.Create ("http://gd.geobytes.com/gd?after=-1&variables=GeobytesCountry,GeobytesCity,GeobytesRegion,GeobytesLatitude,GeobytesLongitude");
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
Stream dataStream = response.GetResponseStream ();
StreamReader reader = new StreamReader (dataStream);
var responseFromServer = reader.ReadToEnd ();
reader.Close ();
dataStream.Close ();
response.Close ();

然后您必须查看responseFromServer并找出如何从响应中获取所需的数据。或者查看网站是否有您可以访问的不同API。