我做了一些asp编程,但没有使用asp.net或aspx脚本。 我正在尝试创建一个脚本,如果没有设置cookie,将发送一个html文件,但如果是,则发送一个pdf。我不断收到运行时错误。
这是我的代码:
<%@ Page Language="C#" %>
<%
HttpCookie mycookie = Request.Cookies["CHECK"];
if (mycookie.Value == ""){
Response.ContentType = "text/html";
Response.Clear();
Response.TransmitFile("forbidden.html");
Response.End();
}
else
{
Response.ContentType = "application/pdf";
Response.Clear();
Response.TransmitFile("test.pdf");
Response.End();
}
%>
我已经测试了html和pdf的响应代码块,两者都运行正常,并将文件发送到浏览器。我添加了使用cookie信息设置mycookie的行,它仍然有效。当我添加if逻辑时,我收到运行时错误。
有人能告诉我我做错了吗?
提前感谢您的帮助。
答案 0 :(得分:1)
如果未设置Cookies["CHECK"]
,则mycookie
将为null
。因此,您可能会获得NullReferenceException
。
尝试以下方法:
if (mycookie == null || String.IsNullOrEmpty(myCookie.Value))) {
// ...
} else {
// ...
}
欢迎来到Stackoverflow。
答案 1 :(得分:0)
您需要检查mycookie是否为空。
尝试类似:
if (mycookie == null || String.IsNullOrEmpty(mycookie.Value)){
答案 2 :(得分:-1)
我的意思是,更好的是:
<%@ Page Language="C#" %>
<%
HttpCookie mycookie = Request.Cookies["CHECK"];
if ((mycookie != null) && (mycookie.Value == "")) {
Response.ContentType = "text/html";
Response.Clear();
Response.TransmitFile("forbidden.html");
Response.End();
}
else
{
Response.ContentType = "application/pdf";
Response.Clear();
Response.TransmitFile("test.pdf");
Response.End();
}
%>