1,在VS2010中,选中指定的代码段,可以拖拽到工具箱中,形成标签,以后还想书写类似的代码,双击鼠标即可。

2,在VS2012中,可以在注释上标注//TODO:我是注释

这样,注释就会出现在任务列表中,一些关键常用的方法/字段/关注点,通过这种方式快速定位。如图:

3,在VS2012中是不支持MVC1.0和MVC2.0的,如果要开启低版本MVC项目的话,必须使用VS2010

4,_ViewStart.cshtml文档会在所有其他所有视图(VIEW)运行之前载入。

发现使用布局页的视图没有完整的HTML结构,是因为类似的视图都作为一部分被装载到布局页中,由_ViewStart.cshtml文档指定,默认为_Layout.cshtml。

5,可以在视图页面的头部定义ViewBag的临时变量,而不必是在Controller的Action方法中定义,如图:

6,在浏览网页时,如果只是指定Controller,而不指定Action,而控制器和动作方法均是必须的路由参数,这时将去RegisterRoutes()方法中取默认的Action值,如图:

上图中默认的方法为Index,也就是说当我们输入.../example的时候,会自动路由为.../example/index

7,如果在View中定义了@model模型声明,那么通过Controller传进View的模型类型必须与View中所声明的类型兼容,否则将产生异常,如图:

8,在view文档(也就是cshtml中),<head>标签中的<title>标签指标题,如图:

9,如下代码:

<p>
@Html.ActionLink("Create New", "Create")
</p>

创建链接,因为没有指定链接的控制器名称,所以链接到当前控制器的Create动作方法,显示的文本为“Create New"。

10,HTTP GET POST

HTTP GET负责显示编辑的窗体,HTTP POST负责实际更新数据库里的属性。

11,杂:

@Html.HiddenFor(model => model.ID)   生成HTML窗体的隐藏域

HTML注释符号:<!--我是被注释的内容-->

在ASP.NET MVC中不建议使用Request对象和Response对象

不要在视图中撰写过多的程序逻辑,实现“关注点分离”

网址路由在MVC中的作用:

1、比对浏览器传过来的HTTP请求,对应到适当的控制器和Action进行处理;

2、决定MVC输出什么样的响应给浏览器;

12,网址路由

比如:单击“主页”链接,浏览器将URL封包,并发送HTTP要求到服务器上,IIS接收到这个HTTP封包,转给网址路由模块负责将HTTP请求交由那个HTTPHandler处理,对于MVC来说,自然是转交给MVCHandler处理,这才会进入MVC的运行声明周期。

  所有ASP.NET Web程序的入口点均是Application_Start()事件,其中 RouteConfig.RegisterRoutes(RouteTable.Routes);

  代码中的Routes是一个公开的静态变量,用来保存所有网址路由的规则集合,为RouteCollection类型的变量。

  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    代码中,表示不要通过网址路由处理,即如果从浏览器传递过来的网址,匹配该规则,将由IIS的其他Http模块处理,将不会进入ASP.MET MVC的生命周期。

  url: "{controller}/{action}/{id}"

  代码中URL样式包含三个路由参数,分别是Controller/Action/ID,注意该URL样式不能以‘/'开头。

  defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

  默认值。当对比不到HTTP请求的网址时,会尝试带入代码中的默认值。

  当接收到HTTP请求时,将从上而下逐条比对,直到找到符合的网址格式。

  注意ID不算在网址路由之中,属于QueryString的部分。

                 routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

  上述代码中,MapRoute使用的是具名参数。

13,MVC的运行声明周期

网址路由比对-->运行Controller与Action-->运行View并回传结果

14,MVC在比对网址路由时,默认情况下,如果查找到网站实体目录中查找相应的实体文档,会自动略过所有网址路由比对。

  如果想打破这种默认行为,那么在MVC程序的入口Application_Start()中,添加如下代码:

  RouteTable.Routes.RouteExistingFiles = true;

  当网址路由比对成功时,MVC默认交由MvcHandler处理。


1,在ASP.NET MVC中,路由机制特别碉堡,直接对应于动作方法。没有必要给每一个动作方法添加视图,当视图返回View时,路由系统会自动寻找指定目录下的视图资源。

 public ViewResult AutoProperty()
{
Product p = new Product();
p.Name = "Chris";
return View("Result", (object)String.Format("你是:{0}", p.Name));
}

如AutoProperty时HomeController中的动作方法,并没有指定视图,但是在返回视图的时候,会自动在Views\Home下查找指定的视图资源。

Url为~/Home/AutoProperty。同样验证了URL与动作方法的一致性。

2,@HTML

@Html.DisplayNameFor(model => model.Email)显示属性名称,在定义属性时可以设置DisplayName属性来修改显示的名称。

如:

         [DisplayName("电子邮件地址")]
public string Email { get; set; }

这样,@~处将不显示“Email”,而是显示“电子邮件地址”。

@Html.DisplayFor(modelItem => item.Name),显示的是特定Item的Name值,如:SharpL

@Html.ActionLink("Edit", "Edit", new { id=item.ID }) ,ActionLink用来输出超链接,第一个参数指超链接的显示文本,第二个参数指Action,第三个参数为路由参数。

@Html.LabelFor(model => model.Name),特定字段的显示名称,对于Email来说任然会显示“电子邮件地址”,所以和DisplayNameFor类似。

二者存在细微的差异,在输出的HTML中,LabelFor输出的内容包含<label>标签,而DisplayFor只会输出属性的显示名称。如图:

         <div class="editor-label">
<label for="Email">电子邮件地址</label>
</div>

出处:

http://www.cnblogs.com/SharpL/p/4587010.html

http://www.cnblogs.com/SharpL/p/4549632.html

【MVC】VS常用技巧的更多相关文章

  1. 【shell 大系】Linux Shell常用技巧

    在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...

  2. oracle存储过程常用技巧

    我们在进行pl/sql编程时打交道最多的就是存储过程了.存储过程的结构是非常的简单的,我们在这里除了学习存储过程的基本结构外,还会学习编写存储过程时相关的一些实用的知识.如:游标的处理,异常的处理,集 ...

  3. Vim 常用技巧:

    Vim 常用技巧: 将回车由默认的8个空格改为4个空格: 命令:set sw=4 修改tab为4空格: 命令:set ts=4 设置每一级的缩进长度: 命令:set shiftwidth=4 设置文件 ...

  4. JS~~~ 前端开发一些常用技巧 模块化结构 &&&&& 命名空间处理 奇技淫巧!!!!!!

    前端开发一些常用技巧               模块化结构       &&&&&     命名空间处理 奇技淫巧!!!!!!2016-09-29    17 ...

  5. Android ListView 常用技巧

    Android ListView 常用技巧 Android TextView 常用技巧 1.使用ViewHolder提高效率 ViewHolder模式充分利用了ListView的视图缓存机制,避免了每 ...

  6. JavaScript常用技巧总结(持续添加中...)

    在我学习过程中收集的一些常用技巧: typeof x !== undifined 判断x是否已定义: x === Object(x)  判断x是否为对象: Object.keys(x).length ...

  7. Eclipse调试常用技巧(转)

    Eclipse调试常用技巧 转自http://daimojingdeyu.iteye.com/blog/633824 1. 条件断点 断点大家都比较熟悉,在Eclipse Java 编辑区的行头双击就 ...

  8. AS技巧合集「常用技巧篇」

    转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=254723&extra=page%3D2%26filter%3Dautho ...

  9. iPhone不为人知的功能常用技巧,看完后才发现很多用iPhone的人实在是愧对乔布斯! - imsoft.cnblogs

    很多人花了四五千买部苹果,结果只用到四五百块钱的普通手机功能. iPhone不为人知的功能,常用技巧: 网上搜集整理的iPhone快捷键操作,虽然表面上iPhone按键只有一个HOME键,大部分操作都 ...

  10. C# Datetime类常用技巧

    C#类常用技巧 //今天DateTime.Now.Date.ToShortDateString();//昨天,也就是今天的日期减一DateTime.Now.AddDays(-1).ToShortDat ...

随机推荐

  1. EBS开发附件上传和下载功能(转)

    原文地址: EBS开发附件上传和下载功能 上传 Oracle ERP二次开发中使用的方式有两种,一是通过标准功能,在系统管理员中定义即可,不用写代码,就可以使几乎任何Form具有附件功能,具体参考系统 ...

  2. Mac安装zsh oh-my-zsh

    我们将安装 zsh ,其拓展功能和主题将由 oh-my-zsh 提供.其中Env.sh 文件用于维护别名(aliases),输出(exports)和路径改变(path changes)等等,以免影响  ...

  3. nodejs初探一二

    概念 简单来说,node.js 是一个让 JavaScript 运行在服务端的开发平台,让开发者通过JS编写服务端程序. 安装 从nodeJS官网下载对应平台的安装程序,安装完成后,打开命令行工具,然 ...

  4. POJ 3220 位运算+搜索

    转载自:http://blog.csdn.net/lyhypacm/article/details/5813634 DES:相邻的两盏灯状态可以互换,给出初始状态.询问是否能在三步之内到达.如果能的话 ...

  5. SQL Server 数据库获取架构信息

    得到数据库存储过程列表: select * from dbo.sysobjects where OBJECTPROPERTY(id, N'IsProcedure') = 1 order by name ...

  6. 练习vue(用户管理)1

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. 51nod1837

    题解: 数论,经过一些大佬的证明,只有1和2这两种可能性 然后再分开来判断即可 注意1的时候为0 代码: #include<bits/stdc++.h> using namespace s ...

  8. (转载)hibernate缓存

    目的:减少访问数据库的次数 一级缓存(默认): Session级别的缓存,一个Session做了一个查询操作,它会把这个操作的结果放在一级缓存中,如果短时间内这个session(一定要同一个sessi ...

  9. KBMMW 的日志管理器

    kbmmw 4.82 最大的新特性就是增加了 日志管理器. 新的日志管理器实现了不同类型的日志.断言.异常处理.计时等功能. 首先.引用kbmMWLog.pas 单元后,系统就默认生成一个IkbmMW ...

  10. 【Cocos2d-X(1.x 2.x) 修复篇】iOS6 中 libcurl.a 无法通过armv7s编译以及iOS6中无法正常游戏横屏的解决方法

    本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/1000.html ...