ASP.NET技术总结
ASP.NET是ASP相关技术的最新版本,它如何工作:
(经典)ASP的后缀名是".asp",通常用VB编写;ASP.NET是".aspx"——
- ASP.NET无法兼容ASP,但可引用ASP。
- ASP.NET页面需要编译,因此比ASP更快。
- ASP.NET有大量基于XML的用户控件。
- 当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辅助方法设置标签的属性:
@*、由于class是C#保留关键字,不能用作属性名称,所以加一个@符号转义
、带有连字符的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" })
最后,辅助方法都有一些共同的特性,如对显示信息样式的设置。
ASP.NET技术总结的更多相关文章
- 【ASP.NET实战教程】基于ASP.NET技术下多用户博客系统全程实战开发(NNblog)
岁末主推:牛牛老师主讲,多用户博客系统,基于ASP.NET技术,年后将带来移动业务平台项目项目目标: 打造个性品牌Blogo,定制多用户博客 为每一个博客用户提供个性化的 blogo解决方案,打造精品 ...
- 微软ASP.NET技术“乱谈”
微软ASP.NET技术“乱谈” 2014新年了,顺手写的一点文字,主要谈谈我对当前微软ASP.NET技术的看法,比较随意,大伙儿随便看看吧. 1 当前微软Web平台技术全貌 从2002年发布.NET ...
- (转)探讨:ASP.NET技术的学习顺序问题
探讨:ASP.NET技术的学习顺序问题 摘要:很多人对于ASP.NET的入门和学习顺序比较迷茫,今天让我们一起来跟随作者的思路学习探讨ASP.NET的学习顺序问题,希望有所帮助. 如果你已经有较多的面 ...
- 【转】探讨:ASP.NET技术的学习顺序问题
摘要:很多人对于ASP.NET的入门和学习顺序比较迷茫,今天让我们一起来跟随作者的思路学习探讨ASP.NET的学习顺序问题,希望有所帮助. 如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一步 ...
- Asp.Net 技术
Asp.Net 技术Nuget 管理器Spring.NET 框架Spring.core 包 微服务Consul .NetCore 框架:Spring.net Nhibernate 框架Dapper.n ...
- [ASP.NET 技术点滴] Jquery 前端验证
先上HTML代码: <form id="login" name="login" action="~/f_login/Login" me ...
- asp.net技术(公共方法)
#region 获取 本周.本月.本季度.本年 的开始时间或结束时间 /// <summary> /// 获取开始时间 /// </summary> /// <param ...
- ASP.NET探讨:技术的学习顺序问题
作者: シtearシ 来源: 博客园 发布时间: 2011-09-27 08:40 阅读: 7675 次 推荐: 25 原文链接 [收藏] 摘要:很多人对于ASP.NET的入门和学 ...
- ASP.NET 缓存技术分析
缓存功能是大型网站设计一个很重要的部分.由数据库驱动的Web应用程序,如果需要改善其性能,最好的方法是使用缓存功能.可能的情况下尽量使用缓存,从内存中返回数据的速度始终比去数据库查的速度快,因而可以大 ...
随机推荐
- RocketMQ 顺序消费只消费一次 坑
rocketMq实现顺序消费的原理 produce在发送消息的时候,把消息发到同一个队列(queue)中,消费者注册消息监听器为MessageListenerOrderly,这样就可以保证消费端只有一 ...
- 转:【专题十一】实现一个基于FTP协议的程序——文件上传下载器
引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...
- 转:[你必须知道的异步编程]C# 5.0 新特性——Async和Await使异步编程更简单
本专题概要: 引言 同步代码存在的问题 传统的异步编程改善程序的响应 C# 5.0 提供的async和await使异步编程更简单 async和await关键字剖析 小结 一.引言 在之前的C#基础知 ...
- gitlab提交内容关联到slack通知
gitlab提交内容关联到slack通知 https://docs.gitlab.com/ee/user/project/integrations/slack.html 首先去slack做相关的设置 ...
- highchart 柱状图,列宽自适应(x轴是时间的特殊情况)
1.柱子列宽自适属性: pointWidth:25, //柱子宽度,如果设定该值,则下面2个属性无效 pointPadding: 0.4,//每列之间的距离值,默认此值为0.1 groupPaddin ...
- linux OS与SQL修改时区,系统时间
linux修改系统时间和linux查看时区.修改时区的方法 一.查看和修改Linux的时区 1. 查看当前时区命令 : "date -R" 2. 修改设置Linux服务器时区方法 ...
- sql语句查询结果排序
order by 是用在where条件之后,用来对查询结果进行排序 order by 字段名 asc/desc asc 表示升序(默认为asc,可以省略) desc表示降序 order b ...
- Django的View
一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. ...
- django的url配置
在一个请求到达的时候,最先达到的就是视图层,然后根据url映射到视图函数.这一部分我们来说明url的配置. 概述 为了给一个应用设计URL,你需要创建一个Python 模块,通常称为URLconf(U ...
- oracle 12c AUTO_SAMPLE_SIZE动态采用工作机制
The ESTIMATE_PERCENT parameter in DBMS_STATS.GATHER_*_STATS procedures controls the percentage of ro ...