zoukankan      html  css  js  c++  java
  • ASP.NET技术总结

    ASP.NET是ASP相关技术的最新版本,它如何工作:

    (经典)ASP的后缀名是".asp",通常用VB编写;ASP.NET是".aspx"——

    1. ASP.NET无法兼容ASP,但可引用ASP。
    2. ASP.NET页面需要编译,因此比ASP更快。
    3. ASP.NET有大量基于XML的用户控件。
    4. 当Web Browsers请求.html时,服务器返回这个文件;而请求ASP文件时,IIS服务器在返回HTML页面之前,会先将请求传送到ASP引擎,然后读取并执行其中的脚本,转化为纯html内容后,再将页面返回给浏览器。

    ASP.NET 支持三种开发模式:

    • Web Pages:单页面模型——内置了用于数据库、视频、社交媒体等的模板和帮助器,可通过web helper进行扩展。
    • MVC:要学习——使用这种轻量级的开发模型来构建web程序,并整合ASP.NET特性(如Master Pages、Security、Authentication)。
    • Web Forms:事件驱动模型。

    MVC

    • C:Controller类必须以Controller后缀结束,即*Controller。
    • V:和Controller中,Action方法名相对应,即一个Action和一个View对应。如一个名为Hello的Action,则有一个名为Hello的View。——ActionResult类型。

    对请求字段的编码处理(防止被注入恶意的可执行代码,如js或Html的代码):

    public string Message(string who)
    {
        return "Hello, " + Server.HtmlEncode(who);
        //return "Hello, " + HttpUtility.HtmlEncode(who);
    }

    如果提交的参数有多个,则用&&或者&连接,例如:http://localhost:28960/Store/Hello?hello=shutao&world=yangwen。

    除了在Action后面添加请求的查询参数,还可以在URL的Action后面嵌入一个id字段:

    //http://localhost:28960/Store/Hello/4
    //http://localhost:28960/Store/Hello?id=4
    
    public string Hello(int id)
    {
        return id + "";
    }

    其中这个字段名必须为id或ID,因为其路由函数已规定好。

    当使用HTTP GET请求提交表单时,浏览器先提取表单中输入元素的name、value的值,并把它们放在查询字符串中,例如:

    <body>
        <!--这个表单相当于导航到URL(http://www.bing.com/search?q=输入)-->
        <form action="http://www.bing.com/search" method="get">
            <input name="q" type="text" />
            <br />
            <input type="submit" value="Search" />
        </form>
    </body>

    视图的Html、Url、Ajax属性,封装了辅助方法,使编码更简单轻松,减轻了工作量。

    用HTML辅助方法设置标签的属性:

    @*1、由于class是C#保留关键字,不能用作属性名称,所以加一个@符号转义
    2、带有连字符的C#属性是无效的,因此所有辅助方法在渲染HTML时,会将属性名中的"下划线_"转换为"连字符-"*@
    @{ Html.BeginForm("Search", "Home", FormMethod.Get, new { target = "_blank", @class="editForm", data_validatable=true });}

    上面的代码将生成如下HTML代码:

    <form action="/Home/Search" class="editForm" data-validatable="true" method="get" target="_blank"></form>

    HtmlHelper<TModel>对象的方法有实例方法和扩展方法,在VS的智能感知窗口中,扩展方法的左边有一个向下的箭头。

    1、SelectList辅助方法:

    //由于一个SelectListItem对象(就是option标签)需要包含Text、Value、Selected属性,所以需要用这三个属性来构造SelectListItem对象的序列
    new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId);

    2、ValidationSummary辅助方法:

    用无序列表的形式,来显示ModelState字典中所有验证错误。

    在Action中有意的添加两种错误(模型级、属性级):

    ModelState.AddModelError("Title", "Title error");
    ModelState.AddModelError("", "Model error");

    然后在视图页中,显示出来:

    @Html.ValidationSummary(excludePropertyErrors: true)

    最终在视图中,ValidationSummary将生成如下代码:

    <div class="validation-summary-errors">
        <ul>
            <li>Model error</li>
            <li>All error</li>
        </ul>
    </div>

    显示特定字段的错误:

    @Html.ValidationMessage("Title", new { @class = "text-danger" })

    最后,辅助方法都有一些共同的特性,如对显示信息样式的设置。

  • 相关阅读:
    一致性哈希算法
    Tcp 3次握手 4次挥手
    计算机字符编码编年史
    虚拟机字节码指令表 JVM
    计算机是如何计算的、运行时栈帧分析(神奇i++续)
    神奇的i++
    记一次 springboot 参数解析 bug调试 HandlerMethodArgumentResolver
    String+、intern()、字符串常量池
    签名和加密的区别(详细)
    java之设计模式汇总
  • 原文地址:https://www.cnblogs.com/quanxi/p/6358451.html
Copyright © 2011-2022 走看看