Asp.net里的Response.Write("")输出javascript脚本的问题

zuoankun_web 2008-11-06 02:26:46
Asp.net里的Response.Write("")输出javascript脚本的问题

<script Language="C#" runat="server">
void Page_load(object src,EventArgs e)
{
Response.Write("<script Language=javascript>alert('路径有误,重新输入!!');history.back();</script>");
}
</script>

就上面这段代码提示有错误,说中间有换行符

我只是想实现跟asp中的那个效果:response.write "<script>alert();history.back()</script>"

同样的东西,在asp里面很好用,怎么到了asp.net里面就不行了呢,这里面还有什么限制,或写的不对吗?有谁知道啊,怎么实现这个功能,我上面的代码哪里写错了
...全文
742 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zuoankun_web 2008-11-06
  • 打赏
  • 举报
回复
楼上的兄弟,你先看清上面那个sname是干什么的,那是取文件的后缀名(扩展名),哪里有你所说的什么特殊字符,现在文件已经编译成功,4 楼 haihong668 的已经回复了,<script></script>标签里面不能再嵌套<script></script>标签,顺便说一下这个是手写的,不是IDE工具生成的
hubofly 2008-11-06
  • 打赏
  • 举报
回复
sname
你的sname里面有Javascript定义的特殊字符,把你的alert()截开了,所以出错了, 你把 write出来的结果 "<script Language=javascript>alert('文件类型错误!请重新上传..."+sname+"');location.href='index.aspx';</script>" 放到单独的html里面调试 就能发现了
zuoankun_web 2008-11-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 haihong668 的回复:]
楼主的这个问题其实很简单,很明显的嘛,你 <script Language="C#" runat="server"> </script>标签对里面又嵌套了一个 <script Language=javascript> </script>,不管哪个语言里面都规定了 <script> </script>标签对里面是不能再嵌套 <script> </script>标签对的
[/Quote]


回答正确,我将代码做成分离模式后,编译没问题了,谢谢这位热心的朋友

代码如下:

index.aspx

<% @ Page Language="C#" CodeFile="index.aspx.cs" Inherits="MyFristNet.MyUpLoadFile" AutoEventWireup="false" %>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=gb2312" />
<title>我的第一个Asp.Net程序</title>
<link href="anet.css" rel="stylesheet" type="text/css" />
</head>


<body>
<div class="anet_tp">
<form Enctype="multipart/form-data" runat="server">
请选择上传的文件:<input type="file" id="UploadFile" runat="server"><br>
<input type="submit" value="上传" OnServerClick="doUpload" runat="server">
<hr>
上传文件名:<asp:Label id="FileName" Text="尚未上传" runat="server"/>
<br>
上传文件大小:<asp:Label id="FileSize" Text="尚未上传" runat="server"/><br>
真实文件名:<asp:Label id="Rname" Text="尚未上传" runat="server"/>
<br>文件的MIMI类型是:<asp:Label id="FileType" Text="未知" runat="server"/><br>
文件的扩展名是:<asp:Label id="FileExname" Text="未知" runat="server"/>
</form>
</div>
</body>
</html>


index.aspx.cs

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace MyFristNet
{
public partial class MyUpLoadFile:Page
{
void Page_load(object sender,EventArgs e)
{
UploadFile.MaxLength = 60;
UploadFile.Size = 60;
}

protected override void OnInit(EventArgs e)
{
Initlimoe();
base.OnInit(e);
}

void Initlimoe()
{
this.Load += Page_load;
}

public void doUpload(object sender,EventArgs e)
{
HttpPostedFile hpf = UploadFile.PostedFile;
FileName.Text = hpf.FileName;

string sname = FileName.Text.Substring(FileName.Text.LastIndexOf("."));

if(sname != ".bmp")
{
Response.Write("sname:"+sname+" "+(sname != "bmp"));
Response.Write("<script Language=javascript>alert('文件类型错误!请重新上传..."+sname+"');location.href='index.aspx';</script>");
Response.End();
}
}
}
}


感谢各位朋友的帮助,谢谢,此贴暂待两天,两天后给分,希望可以给需要的朋友提供分享
dingxuewhlg 2008-11-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuyq11 的回复:]
Response.Write(@" <script Language='javascript'>alert('路径有误,重新输入!');history.back(); </script>");
[/Quote]

正解!
wuyq11 2008-11-06
  • 打赏
  • 举报
回复
Response.Write(@"<script Language='javascript'>alert('路径有误,重新输入!');history.back();</script>");
haihong668 2008-11-06
  • 打赏
  • 举报
回复
楼主的这个问题其实很简单,很明显的嘛,你<script Language="C#" runat="server"></script>标签对里面又嵌套了一个<script Language=javascript></script>,不管哪个语言里面都规定了<script></script>标签对里面是不能再嵌套<script></script>标签对的
chinawes 2008-11-06
  • 打赏
  • 举报
回复
试试1楼的方法吧,代码没有问题。
月光下的土豆 2008-11-06
  • 打赏
  • 举报
回复

void Page_load(object src,EventArgs e)
{
Response.Write(@" <script Language=javascript>alert('路径有误,重新输入!!');history.back(); </script>");
}

满衣兄 2008-11-06
  • 打赏
  • 举报
回复
你这个代码是正确的。
可能是编码方式导致的问题,运行之后查看源文件,看是否有乱码。
解决方法:文件->高级保存->unicode(utf-8 带签名)->确定。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧