1 Star 6 Fork 0

N0ts / note

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
ASP.Net.md 12.48 KB
一键复制 编辑 原始数据 按行查看 历史
N0ts 提交于 2021-10-12 11:21 . 📝[Docs]: update

jquery“ScriptResourceMapping” 报错

原因

使用验证控件时可能出现的报错,因为验证控件会在前端调用 Jquery 进行验证,而新版本 VS 默认禁用了 UnobtrusiveValidationMode 属性,不进行配置则会报错

解决方法

  1. 降低 .Net Framework 版本

      <system.web>
        <compilation debug="true" targetFramework="4.7.2"/>
        <httpRuntime targetFramework="4.7.2"/>
      </system.web>
  2. 设置 UnobtrusiveValidationMode 类型为 none

    // 在 system.web 标签同级添加以下代码
    <appSettings>  
          <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />  
    </appSettings> 
  3. Page_Load 页面加载事件中设置 UnobtrusiveValidationMode 类型为 none

    protected void Page_Load(object sender, EventArgs e)
    {
        UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
    }

ASP.Net 数据验证控件

  • RequiredFieldValidator:非空
  • CompareValidator:比较
  • RangeValidator:范围
  • RegularExpressionValidator:正则表达式
  • CustomValidator:自定义验证
  • ValidationSummary:验证汇总

非空验证

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;
}

属性解释补充

Operator

规定执行的比较操作的类型。运算符有:

  • Equal:==
  • GreaterThan:>
  • GreaterThanEqual:>=
  • LessThan:<
  • LessThanEqual:<=
  • NotEqual:!=
  • DataTypeCheck:是否为日期格式

Type

规定要对比的值的数据类型。类型有:

  • Currency
  • Date
  • Double
  • Integer
  • String

母版页与内容页

创建方法

右键项目 - Web - Web 窗体母版页

FileUpload 文件上传

属性 说明
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));
}

系统对象

Page

每一个 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

Response 对象用于将数据从服务器发送刘览器。允许将数据作为请求的结果发送到览器中,并提供有关响应的信息,可用于在页面中输入数据和在页面中转,还可以传逆各个页面的参数。

属性 说明
Cookies 获取相应的 Cookie 集合
Redirect 将客户端重定向到新的 URL
Write 将信息写入 HTTP 响应输入流
Response.Write("<script>alert('wdnmd');</script>");
Response.Redirect("~/WebForm2.aspx");

Request

Request对象用于检索从浏器向服务器所发送的请求中的信息,它提供对当前项请求的访问,包括标题、 Cookie和査询字符串等

常见方法包括 Request.QueryStringRequest.FormRequest

页面传值的常用两种方式

  • get

    使用 Request.QueryString 获取传来的值

    Label1.Text = Request.QueryString["text"];
  • post

    使用 Request.Form 获取传来的值

    Label1.Text = Request.Form["text"];

Server

Server 对象提供了对服务器上的方法和属性的访向,用于访问服务器上的资源。其类的名称是 HttpServerUtility

属性 说明
HtmlEncode 对字符串进行编码,使其在浏览器正确显示
HtmlDecode 与 HtmlEncode 相反,对编码进行解码
MapPath 返回 Web 服务器,指定与虚拟路径相对应的物理文件路径
UrlEncode 对 URL 地址进行编码,URL 在传输中含有 “#”、“&” 等特殊符号的参数时进行编码,否则内容不会被检测到
UrlDecode 与 UrlEncode 相反,对编码进行解码

页面状态管理

Cookie

在 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

Session 对象包含某一个用户的状态信息,仅面向该连接,不共享

当会话超时或过期,服务器立刻清除释放资源

会话通过 SessionId 传递状态信息,客户端仅知 SessionId,其状态信息不可见

方法 说明
Abandon 取消当前会话
Clear 从会话中移除所有的键和值
Remove 删除会话对象中的项
Session["username"] = "wdnmd";

Application

Application 对象用于共享应用程序级信息,即多个用户共享一个 Application 对象。当第个用户请求 ASP.NET 文件时,将启动应用程序并创建 Application 对象。 一旦 Application 对象被创建,在整个应用程序中都可以访问该对象的值,直到应用程序结束。

// 访问次数统计
int num = Convert.ToInt32(Application["num"]);
Application["num"] = ++num;
Label1.Text = num.ToString();

三层架构

  • DAL - 数据访问层(Database access layer):主要用于存放对原始数据进行操作的代码,它封装了所有与数据库交互的操作,并为业务逻辑层提供数据服务.(存取数据, 供BLL调用,本质类库
  • BLL - 业务逻辑层(business logical layer):主要用于存放针对具体问题对数据进行逻辑处理的代码
  • UI - 表示层(User Interface):主要用于存放与用户交互的展示页面

Model

三层架构之间实现数据交互主要依靠模型,模型包含了 所有与数据表相对应的实体类

新建项目 - 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; }
    }
}
1
https://gitee.com/n0ts/note.git
git@gitee.com:n0ts/note.git
n0ts
note
note
master

搜索帮助