求助,请各位大哥帮我改一个错误,谢谢!
各位大哥:
我打开 visual c# projects asp.net web application
然后 单击 Html 得到 下面的语句:
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication6.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name=vs_defaultClientScript content="JavaScript">
<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
</form>
</body>
</html>
现在 我在里面加上
<%
Response.Write("<p>Hello")
%>
得到
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication6.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name=vs_defaultClientScript content="JavaScript">
<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<%
Response.Write("<p>Hello")
%>
</form>
</body>
</html>
运行时出错误!
请教各位大哥,为什么加上
<%
Response.Write("<p>Hello")
%>
就不行呢?
还有,
<form id="Form1" method="post" runat="server">
</form>
是什么?
为什么没有
<form id="Form1" method="post" runat="server">
</form>
也能运行呢?
谢谢!
问题点数:100、回复次数:16Top
1 楼fancyf(凡瑞)回复于 2005-06-02 20:38:46 得分 10
语句后面加上分号Response.Write("<p>Hello");
页面上没有服务器控件,不需要PostBack的话Form有没有无所谓Top
2 楼smallyear(再見理想)回复于 2005-06-02 20:41:04 得分 10
同上,最好不要写代码在页面里,写到CS文件中,编译时就能提示出错了。
如果你的页面上有服务器控件,就一定要放在RUNAT=SERVER的FORM里面。Top
3 楼DanielQQ()回复于 2005-06-02 20:45:39 得分 10
完全同意fancyf(凡瑞) 的说法!Top
4 楼delphi_CH()回复于 2005-06-02 20:53:56 得分 0
非常感谢 fancyf 大哥和 smallyear大哥:
TO smallyear大哥:您说 “最好不要写代码在页面里,写到CS文件中”
您说的 CS文件,是不是 webform1.aspx.cs
可是我把
<%
Response.Write("<p>Hello")
%>
放到
private void Page_Load(object sender, System.EventArgs e)
有错误:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace WebApplication6
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
<%
Response.Write("<p>Hello");
%>
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
fancyf 大哥, smallyear大哥:
我应该怎样修改啊?
谢谢!
如果你的页面上有服务器控件,就一定要放在RUNAT=SERVER的FORM里面
是把什么一定要放到 RUNAT=SERVER的FORM里面啊?
谢谢!
Top
5 楼delphi_CH()回复于 2005-06-02 20:59:19 得分 0
ancyf 大哥和 smallyear大哥;
我把
<%
%>
去掉就可以了,为什么这里面不能有
<%
%>
而 webform1.aspx 就需要呢?
还有
ancyf 大哥 说“页面上没有服务器控件,不需要PostBack的话Form有没有无所谓”
是什么意思啊?
smallyear大哥 说“如果你的页面上有服务器控件,就一定要放在RUNAT=SERVER的FORM里面”
是把什么一定要放到 RUNAT=SERVER的FORM里面啊?
谢谢!
Top
6 楼hchxxzx(NET?摸到一点门槛)回复于 2005-06-02 21:02:53 得分 10
写在后台就不要写<%%>这两个符号了.把那两个符号去掉Top
7 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-06-02 21:06:10 得分 10
ancyf 大哥 说“页面上没有服务器控件,不需要PostBack的话Form有没有无所谓”
是什么意思啊?
========
PostBack就是发回服务端啊。如果不要发回的话,不用也可以PostBack你可以参看相关帮助“SDK/MSDN”
----------------------------
smallyear大哥 说“如果你的页面上有服务器控件,就一定要放在RUNAT=SERVER的FORM里面”
是把什么一定要放到 RUNAT=SERVER的FORM里面啊?
=========
不一定的啦!Top
8 楼renyu732(Sysinfo)回复于 2005-06-02 21:08:49 得分 10
呵呵.
建议楼主先看以下asp.net方面的教程.
Top
9 楼zeusvenus()回复于 2005-06-02 21:20:41 得分 10
<%
Response.Write("<p>Hello")
%>
可以写到CodeBehind中,此时写成Response.Write("<p>Hello")即可.
另外,一般服务器端控件需要传值和引用的时候得用Form等标记,如果你没有在Form中包含需要处理事务或响应事件的服务器端控件或Frame,不要也可以.Top
10 楼delphi_CH()回复于 2005-06-02 21:21:09 得分 0
感谢各位大哥的回答
感谢 renyu732 大哥的忠告
hchxxzx 大哥说:“写在后台就不要写<%%>这两个符号了.把那两个符号去掉”
请教 hchxxzx 大哥 和各位大哥 ,前台和后台是以什么标准来区分的啊?
还有 webform1.aspx ,就是前台?而 webform1.aspx.cs 就是后台是吗?
谢谢各位大哥
Top
11 楼delphi_CH()回复于 2005-06-02 22:10:05 得分 0
zeusvenus 大哥:
可以写到CodeBehind中,此时写成Response.Write("<p>Hello")即可.
另外,一般服务器端控件需要传值和引用的时候得用Form等标记,如果你没有在Form中包含需要处理事务或响应事件的服务器端控件或Frame,不要也可以.
CodeBehind 是什么文件啊?
我怎么找不到啊,还有 Frame ,我也没找到啊
请 zeusvenus 大哥 和各位大哥再详细说一下啊~~
谢谢!
Top
12 楼zeusvenus()回复于 2005-06-02 23:51:20 得分 10
CodeBehind不是文件,是将前台和后台分离开来的一种设计方法,像一般以显示功能为主的可以放在ASPX的HTML前台中,而在ASPX.CS的CSHARP代码文件中写的与服务器或者用户交互的部分通俗点叫后台。像你的这句话在HTML中写要加<% %>内,是告诉浏览器这句话应该以脚本方式解释。
Frame是指框架。
Top
13 楼delphi_CH()回复于 2005-06-03 08:43:08 得分 0
zeusvenus大哥:
像浏览网页,申请帐号,输入用户号 和 密码 然后点击提交
因为 用户号 和 密码 是需要提交的数据库中的,这样的代码 就是后台代码
如果点击一个安纽,就出现某副图片,而这副图片不需要从后台数据库中读出
这样的 代码就是前台。
是吗?zeusvenus大哥!Top
14 楼renyu732(Sysinfo)回复于 2005-06-03 10:09:47 得分 20
zeusvenus大哥:
像浏览网页,申请帐号,输入用户号 和 密码 然后点击提交
因为 用户号 和 密码 是需要提交的数据库中的,这样的代码 就是后台代码
-------------
一般用户能看到的只是页面端的东西如文本框,按钮之类的.但是,验证用户名及密码是不是正确是写在后台代码里的,一般用户是看不到的.
而如果用到三层的话.
UI层:页面,如文本框,提交/注册按钮
业务逻辑层:判断用户输入的数据是不是有效,如email等的格式是不是正确
数据层:用来与数据库的连接,进而判断用户输入数据的正确性.
如果点击一个安纽,就出现某副图片,而这副图片不需要从后台数据库中读出
这样的 代码就是前台。
---------------
一般的网站如果图片量很多,如新闻之类的要经常更新的内容也是从数据库里读出来的(包括图片文件等也是).
而所谓的前台就是三层中的UI层,一般的浏览者可以直接看到的内容.比如输入URL后,显示出来的内容.
Top
15 楼renyu732(Sysinfo)回复于 2005-06-03 10:10:31 得分 0
不知道我说的你有没有看明白.Top
16 楼delphi_CH()回复于 2005-06-03 11:30:08 得分 0
renyu732 大哥
您可牛啊~~
谢谢 renyu732 和所有的大哥!Top




