使用验证控件时可能出现的报错,因为验证控件会在前端调用 Jquery 进行验证,而新版本 VS 默认禁用了 UnobtrusiveValidationMode 属性,不进行配置则会报错
降低 .Net Framework 版本
<system.web>
<compilation debug="true" targetFramework="4.7.2"/>
<httpRuntime targetFramework="4.7.2"/>
</system.web>
设置 UnobtrusiveValidationMode 类型为 none
// 在 system.web 标签同级添加以下代码
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
Page_Load 页面加载事件中设置 UnobtrusiveValidationMode 类型为 none
protected void Page_Load(object sender, EventArgs e)
{
UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
}
RequiredFieldValidator:非空
属性 | 说明 |
---|---|
ControlToValidate | 需要验证控件的 ID |
Text | 为空(出错)时提示该信息 |
ErrorMessage | 提交给汇总控件的错误信息;如果 Text 属性为空则提示该信息 |
CompareValidator:比较
属性 | 说明 |
---|---|
ControlToValidate | 需要验证控件的 ID |
ControlToCompare | 用于对比控件的 ID |
Type | 比较类型设置,不同类型则报错 |
Operator | 设置比较运算符 |
ValueToCompare | 用于比较的值 |
RangeValidator:范围
属性 | 说明 |
---|---|
ControlToValidate | 需要验证控件的 ID |
MaximumValue | 最大值 |
MinimumValue | 最小值 |
Type | 验证类型 |
RegularExpressionValidator:正则表达式
属性 | 说明 |
---|---|
ControlToValidate | 需要验证控件的 ID |
ValidationExpression | 正则表达式 |
CustomValidator:自定义验证
属性 | 说明 |
---|---|
ControlToValidate | 需要验证控件的 ID |
OnServerValidate | 事件,设置事件名字 |
ValidationSummary:验证汇总
所有验证的错误信息统一显示
属性 | 说明 |
---|---|
ShowMessageBox | 是否弹出错误信息 |
ShowSummary | 是否显示错误报告内容 |
取出指定控件的内容
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
Label1.Text = args.Value;
}
规定执行的比较操作的类型。运算符有:
规定要对比的值的数据类型。类型有:
右键项目 - Web - Web 窗体母版页
属性 | 说明 |
---|---|
HasFile | 控件是否存在将要上传的文件 |
FileName | 上传文件的文件名 |
SaveAs(函数) | 将上传的文件保存到服务器指定的路径 |
// 上传
protected void Button1_Click1(object sender, EventArgs e)
{
// 如果存在文件
if (fileupload.HasFile)
{
// 获取文件名
string fileName = fileupload.FileName;
// 获取文件后缀名(需引用 using System.IO;)
string fileFix = Path.GetExtension(fileName);
if (fileFix == ".png" || fileFix == ".jpg")
{
// 上传到服务器
fileupload.SaveAs(Server.MapPath("./img/" + fileName));
imageBox.ImageUrl = "~/img/" + fileName;
Label1.Text = "上传成功";
}
else
{
Label1.Text = "文件类型错误!";
}
}
}
protected void Button2_Click(object sender, EventArgs e)
{
// 设置返回类型
Response.ContentType = "application/x-zip-compressed";
// 文件名设置
string filename = "about-background.png";
// 设置返回头部
Response.AddHeader("Content-Disposition", "attachment;filename=" + filename);
// 返回下载文件在服务器的相对路径
Response.TransmitFile(Server.MapPath("./img/" + filename));
}
每一个 aspx 页面都对应个页面类,它继承于 System.Web.UI.Page 类。
Page 对象就是此页面类的实例,即每一个页面就是个 Page 对象。
aspx 页面在运行的过程中被編译为Page对象,并缓存于服务器内存中。
属性 | 说明 |
---|---|
IsPostBack | 返回 Bool;指示该页面是否为响应客户端回发而加载,或者是否为首次加载 |
IsValid | 返回 Bool;指示该页面验证是否成功 |
MasterPageFile | 用于获取或设置母版页的文件名 |
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TextBox1.Text = "这是初始化文字";
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = TextBox1.Text;
}
Response 对象用于将数据从服务器发送刘览器。允许将数据作为请求的结果发送到览器中,并提供有关响应的信息,可用于在页面中输入数据和在页面中转,还可以传逆各个页面的参数。
属性 | 说明 |
---|---|
Cookies | 获取相应的 Cookie 集合 |
Redirect | 将客户端重定向到新的 URL |
Write | 将信息写入 HTTP 响应输入流 |
Response.Write("<script>alert('wdnmd');</script>");
Response.Redirect("~/WebForm2.aspx");
Request对象用于检索从浏器向服务器所发送的请求中的信息,它提供对当前项请求的访问,包括标题、 Cookie和査询字符串等
常见方法包括 Request.QueryString
、Request.Form
和 Request
页面传值的常用两种方式
get
使用 Request.QueryString
获取传来的值
Label1.Text = Request.QueryString["text"];
post
使用 Request.Form
获取传来的值
Label1.Text = Request.Form["text"];
Server 对象提供了对服务器上的方法和属性的访向,用于访问服务器上的资源。其类的名称是 HttpServerUtility
属性 | 说明 |
---|---|
HtmlEncode | 对字符串进行编码,使其在浏览器正确显示 |
HtmlDecode | 与 HtmlEncode 相反,对编码进行解码 |
MapPath | 返回 Web 服务器,指定与虚拟路径相对应的物理文件路径 |
UrlEncode | 对 URL 地址进行编码,URL 在传输中含有 “#”、“&” 等特殊符号的参数时进行编码,否则内容不会被检测到 |
UrlDecode | 与 UrlEncode 相反,对编码进行解码 |
在 ASP.NET 中,Cookie 用于在客户端浏览器中存储少量信息,通常存放非敏感的用户信息,保存的时间可以根据用户的需要设置
属性 | 说明 |
---|---|
Name | Cookie 变量的名称 |
Value | 取得或设置 Cookie 变量的值 |
Expires | 用于设定 Cookie 的过期时间 |
// 新建 Cookie 对象
HttpCookie cookie = new HttpCookie("test", "test2");
// 设置 Cookie 过期时间
cookie.Expires = DateTime.Now.AddDays(3);
// 向客户端响应 Cookie 存储
Response.Cookies.Add(cookie);
Session 对象包含某一个用户的状态信息,仅面向该连接,不共享
当会话超时或过期,服务器立刻清除释放资源
会话通过 SessionId 传递状态信息,客户端仅知 SessionId,其状态信息不可见
方法 | 说明 |
---|---|
Abandon | 取消当前会话 |
Clear | 从会话中移除所有的键和值 |
Remove | 删除会话对象中的项 |
Session["username"] = "wdnmd";
Application 对象用于共享应用程序级信息,即多个用户共享一个 Application 对象。当第个用户请求 ASP.NET 文件时,将启动应用程序并创建 Application 对象。 一旦 Application 对象被创建,在整个应用程序中都可以访问该对象的值,直到应用程序结束。
// 访问次数统计
int num = Convert.ToInt32(Application["num"]);
Application["num"] = ++num;
Label1.Text = num.ToString();
三层架构之间实现数据交互主要依靠模型,模型包含了 所有与数据表相对应的实体类 。
新建项目 - Visual C# - 类库(.NET framework)
实体类完成后还需要 序列化
将一个对象转换成可存储在磁盘上,或可通过网络传输的格式的过程,称为序列化
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Models
{
// 序列化
[Serializable]
public class UserInfo
{
/// <summary>
/// 用户ID
/// </summary>
public int ID { get; set; }
/// <summary>
/// 登录名
/// </summary>
public string LoginName { get; set; }
/// <summary>
/// 昵称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 密码
/// </summary>
public string PassWord { get; set; }
/// <summary>
/// 余额
/// </summary>
public decimal money { get; set; }
/// <summary>
/// 性别
/// </summary>
public char Age { get; set; }
/// <summary>
/// 电话
/// </summary>
public int Tel { get; set; }
/// <summary>
/// 地址
/// </summary>
public string Address { get; set; }
/// <summary>
/// 是否为管理员
/// </summary>
public int IdentityNum { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime JoinDate { get; set; }
/// <summary>
/// 密保
/// </summary>
public string protect { get; set; }
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。