时间:2015-11-20 15:48:28

标签: c# asp.net

首先,我想说我没有.NET框架的经验。我有以下问题。从Javascript,我执行一个aspx页面的调用,后面有以下c#代码:

using System;
using Decoder;

namespace Decoder
{
public class PDF_Generator : System.Web.UI.Page
{
private string decodedPDF;
private string base64EncodedPDF;
Decoder.Decoder decoder = new Decoder();

protected void Page_Load(object sender, EventsArgs e)
{
    try
    {
        this.base64EncodedPDF = Request.Params["encodedString"]; //get encoded string from js
        this.decodedPDF = decoder.decodeFromBase64toString(this.base64EncodedPDF); //decode string

        byte[] pdfByteStream = decoder.getBytesFromString(this.decodedPDF);

        Response.Clear();
        Response.ContentType = "application/pdf";
        //Response.AddHeader("Content-Disposition", "attachment; filename=\"summary.pdf\"");
        Response.AddHeader("Content-Length", pdfByteStream.Length.toString());
        Response.BinaryWrite(pdfByteStream);
        Response.End();
    }
}
}
}

我想在PDF_Generator中使用我的类Decoder.cs,但是我收到以下错误:

  

CS0234:类或名称空间'Decoder'在类或中不存在   namespace'Decoder'(你缺少一个程序集引用吗?)

我的aspx文件是这样的:

<%@ Import Namespace="Decoder"%>
<%@ Page language="c#" src="Scipafi_PDF.aspx.cs" AutoEventWireup="true" Inherits="PDF_Generator" %>

提前感谢您的所有建议。

3 个答案:

答案 0 :(得分:2)

您要导入解码器命名空间两次,一次在您的代码后面(using Decoder;),一次导入您的aspx页面(<%@ Import Namespace="Decoder"%>)。我想知道这可能是问题所在。尝试删除

<%@ Import Namespace="Decoder"%>

来自您的aspx页面。

答案 1 :(得分:0)

如果看起来你已经为.Net框架中的内容重新编写了代码。请参阅System.Convert.ToBase64String()System.Convert.FromBase64String()

答案 2 :(得分:0)

您应该从页面中删除

<%@ Import Namespace="Decoder"%>

并使Inherits =“Decoder.PDF_Generator”

<%@ Page language="c#" src="Scipafi_PDF.aspx.cs" AutoEventWireup="true" Inherits="Decoder.PDF_Generator" %>

你也不需要代码隐藏,可以删除

using Decoder;

但这实际上不应该引发错误

更新

看看@Ryios评论,他是对的