【问题标题】:Generating Javascript in an ASPX page, and presenting it to Sharepoint在 ASPX 页面中生成 Javascript,并将其呈现给 Sharepoint
【发布时间】:2016-02-10 06:53:34
【问题描述】:

由于我很遗憾,我发现自己正试图通过插入的 JavaScript 标记将数据呈现到另一个页面页面。

本质上,我正在做的是从 aspx 页面中查询数据库,并将数据写入 javascript 数组。此 aspx 页面用作脚本标记中的 src 元素。

这仅在浏览器为 IE 时有效。

代码可能有助于解释,[此页面按预期工作] http://server1/Website1/

<%@ Page ContentType="application/javascript" Language="C#" AutoEventWireup="true" CodeFile="GetDataFromDB.aspx.cs" Inherits="GetDataFromDB" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>

</body>
</html>

而在我们背后的代码中

public partial class GetDataFromDB: System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Clear();
        Response.ContentType = "application/javascript";

        StringBuilder output = new StringBuilder();

        output.Append(" var data= [");
        // Open database connection
        // Get some data
        // write it out into the output StringBuilder
        // close down connection
        output.Append("]; )";
        byte[] data = GetByteArray(output.ToString());

        Response.OutputStream.Write(data, 0, data.Length);
        Response.OutputStream.Flush(); 
        Response.End();
    }
}

在 Sharepoint 页面中,我已包含此脚本标记

<script language='javascript' type='application/javascript' src='http://server1/Website1/GetDataFromDB.aspx' ><\script>

现在这在 IE 中可以正常工作,并且数据会显示在页面上,但是在 Firefox 和 Opera 中这似乎可以正常工作,但是在脚本文件的内容中,每个字符都穿插有一个?,即它开始:

v?a?r? d?a?t?a?=?[? .... etc

如果我将生成的页面的内容复制到一个文本文件中并将其保存在同一位置,例如http://server1/Website1/GetDataFromDB.js 并将其用作源,则一切正常。

有人知道我做错了什么吗?

附加信息,tho 页面从不同的主机运行,并且两者都通过 IIS 被切断,我完全控制托管 http://server1/Website1/GetDataFromDB.aspx 的服务器,但根本无法控制父页面作为服务器的那个来自。

【问题讨论】:

    标签: javascript asp.net dynamic


    【解决方案1】:

    这是我自己的错... 我基于这个 SO 帖子的函数 GetByteArray() : How do I get a consistent byte representation of strings in C# without manually specifying an encoding?

    然而这是问题的原因,它应该是: https://stackoverflow.com/a/10379957

    现在工作...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      相关资源
      最近更新 更多