Mvc学习笔记(2)
Razor模板的具体语法使用
因为Razor模板的可以自动识别<>,大大减少了代码量,本节我们一起来探究Razor模板的语法的简单应用:
MVC知识点:
1.ASP.NET Mvc框架 是微软开发的一套新的Web机制
本来的意思是想把以前的前后台紧密联系的WebForm机制改变成灵活的配置方式,但涉及微软觉得每个控制器访问的Model和视图如果都是用配置文件的话,很麻烦。所以微软采取了一中”约定大于配置”的理念。
用户访问某个控制器里的Action方法,就会自动加载同名的视图。
优点:
1.大量的减少了程序员的配置工作
2.本身网站的业务和页面就是配套的,很少有共用或改变的情况
3.可以允许程序员使用不同的视图引擎,从而根据不同的业务和习惯选择不同的视图引擎提高开发效率。
如下图:
public class StudyController : Controller
{
//
// GET: /Study/ public ActionResult Index()
{
return View();
} }
假如我们给Study控制器的Action方法添加一个同名的视图,当我们在地址栏里输入 http://localhost:80/study/Index 会访问Views文件夹下的Study文件夹的Index.cshtml。
假如用户访问http://localhost:80/study/Index,我们也可以设置访问 Views文件夹的下的Home文件夹的Test.cshtml
如下图:
public class StudyController : Controller
{
//
// GET: /Study/ public ActionResult Index()
{
return View("/Views/Home/TT.cshtml");
} }
MVC设计模式
是一种用于将具体显示与业务分离,并能通过某种方法灵活改变的代码设计方式。优点在于,用户请求的页面和业务可以灵活配置,降低了页面呈现和后台业务的耦合度。
简而言之:用户请求控制器,控制器【根据配置】决定调用哪个模型来执行业务,并将返回的数据装入哪个视图,最后生成html代码返回用户
下图是视图加载规则,通过mvc找不到视图的错误
先去与控制器同名的视图文件夹找
Controller获取浏览器的数据
//配置好了的Route规则
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default1",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Test", action = "TestIndex", id = UrlParameter.Optional }
);
}
假如说浏览器请求路径是: /Home/Update/1,MVC框架获取请求后,就会找到匹配的路由映射路径url,得知是请求的控制器类Home里的Update方法,此时就会检查此方法是否包含一个名为id的参数,如果有,按照配置的url获取”参数”{id},并传给此方法。
当一个请求的Url进来以后,会到静态路由表的routes属性的MapRoute方法去匹配路由规则,如果Update有id参数,根据请求的Url将值赋值给方法的id参数
public ActionResult Update(int id)
{
return View();
}
直接通过请求上下文对象里的 Request获取 url ?后的的参数:
浏览器请求路径为:/User/UserList/1?fun=jp
控制器获取:Request.QueryString["fun"];
可能有人会问为什么这里可以用Request,那是因为Controller类面有Request
如上图:我们可以看到Controller类包含了Request、Response、Session、Server、HttpContext属性。这样我们就可以使用Request获取数据
我们还可以通过MVC框架自带的FormCollection 接收数据 如:
public ActionResult Update(FormCollection forms)
{
string id=forms["id"];
return View();
}
我们还可以通过实体对象一次性获取表单元素的数据,并设置到实体对象对应的属性中
[HttpPost]
public string Update(Student stu)
{
return stu.Name;
} //下面的是视图的表单
//但是表单的表单元素的属性名必须和实体对象的属性一样
<input type="text" value="333" name="Name" id="Name" />
Mvc学习笔记(2)的更多相关文章
- MVC学习笔记索引帖
[MVC学习笔记]1.项目结构搭建及单个类在各个层次中的实现 [MVC学习笔记]2.使用T4模板生成其他类的具体实现 [MVC学习笔记]3.使用Spring.Net应用IOC(依赖倒置) [MVC学习 ...
- ASP.NET MVC学习笔记-----Filter2
ASP.NET MVC学习笔记-----Filter(2) 接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用 ...
- ASP.NET MVC学习笔记-----Filter
ASP.NET MVC学习笔记-----Filter(1) Filter类型 接口 MVC的默认实现 Description Authorization IAuthorizationFilter Au ...
- Spring MVC 学习笔记一 HelloWorld
Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...
- .NET MVC 学习笔记(一)— 新建MVC工程
一..NET MVC 学习笔记(一)—— 新建MVC工程 接触MVC有段时间了,一直想找机会整理一下,可是限于文笔太差,所以一直迟迟羞于下手,想到最近做过的MVC项目也有一些了,花点时间整理一下方便以 ...
- Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建
Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息
</pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...
- Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息
Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...
- Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录
Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...
随机推荐
- 为 vsftpd 启动 vsftpd:500 OOPS: bad bool value in config file for: pasv_enable
每行的值都不要有空格,否则启动时会出现错误,举个例子,假如我在listen=YES后多了个空格,那我启动时就出现.. 为 vsftpd 启动 vsftpd:500 OOPS: bad bool val ...
- 更改Mysql数据库存储位置的具体步骤
首先把mysql的服务先停掉,更改MySQL配置文件My.ini中的数据库存储主路径,将老的数据库存储主路径中的数据库文件和文件夹复制到新的存储主路径,接下来重启搞定 一.首先把mysql的服 ...
- 开启、关闭数据库mysql
1.命令行 net start mysql net start mysql 2.点控制面板→管理→服务 招到mysql 3.找到安装目录下的bin目录
- Android 自定义View修炼-仿360手机卫士波浪球进度的实现
像360卫士的波浪球进度的效果,一般最常用的方法就是 画线的方式,先绘sin线或贝塞尔曲线,然后从左到右绘制竖线,然后再裁剪圆区域. 今天我这用图片bitmap的方式,大概的方法原理是: (1)首先用 ...
- 2. shell之shell配置文件
1. shell配置文件的位置 最常用的shell有sh和bash等,此处只讲sh和bash 1.1. sh(Bourne Shell)配置文件主要有两个,分别为每个用户主目录中的.profile文件 ...
- linux 软连接方式实现上传文件存储目录的无缝迁移
背景: 由于前期的磁盘空间规划与后期的业务要求不符合.原先/home被用于用户上传文件的存储目录,但是由于上传文件的逐渐增多,而原来的/home目录的空间不足,需要给/home目录进行扩容.同时各个应 ...
- 让你一分钟认识电子身份验证系统EID
什么是EID eID是英文"Electronic Identity"的英文简称,中文名为"电子身份证"或"网络电子身份证",由公安部第三研究 ...
- js事件3
一.loading——(用来加载位于网页中的文件,而非本地的) 例子: <!doctype html> <html lang="en"> <head& ...
- css实现基础几何图形
我们知道,css3通过border-radius.animation.transform等“新”特性可以绘制很多精致的图形.比如腾讯企鹅Logo.超能陆战队中的大白机器人.太阳系.小黄人.叮当猫.安卓 ...
- js广告浮动
一个广告框在指定区域,有定位属性的父级区域内,一直向右向左移动,如果碰到左右边框,反向,如果碰到上下边距,反向,实现在指定框中浮动的效果. <!doctype html> <html ...