开发步骤
1、建立项目
2、建立文件夹
3、建立Controllers
4、生成页面
5、编写Html+Js
6、编写异步请求的Action的方法,返回部分页(用于分页)
7、Js中显示部分页

8、增加新增按钮,增加Add的Action,并生成页面
9、新增页面Html+Js,增加保存Js方法,$.post到SaveAction,保存成功后关闭页面



http://www.cnblogs.com/wlb/archive/2009/12/07/1618954.html
第一次接触到MVC,才知道,什么是真正的Web开发;Html怎么运作,怎样传值,怎么样赋值;
  • 没有数据回传
  • 没有在页面中保存视图状态
  • 开发者可以完全掌控页面的呈现过程


统一权限如何做到的(权限控制)、数据验证、开发技巧(分页、批量提交、异步等)  

MVC权限控制:Auth认证
数据验证:前台JS,$.Post后台验证,AjaxForm 提交; 用吴乐章的验证控件
常用Demo:
    增、改:验证代码,提交代码;绑定代码
    批量新增:[0].Name  方式提交
    查:分页列表,部分页处理
    删除:$.Post 提交
    分页列表,上传方法
进阶知识:
在ASP.NET MVC中约定,以“_”开头的文件在浏览器上面是不能访问的
_ViewStart.cshtml定义了Layout,作用域,当前文件夹
_Viewstart.cshtml是一个在呈现View文件的时候的启动文件,会在所有View(.cshtml)被执行之前执行,主要用于一些不方便或不能在母版(_Layout.cshtml)中进行的统一操作,譬如你有很多个没有继承关系的母版或不使用母版的单页。
@section 在指定位置显示代码,主要用于Js顺序和,CSS顺序
RenderSection("seciton名称",false) 后面为False时,为子页面可以不重写,为True时,子页面必须重写
RenderBody(),子页面默认就是body
@helper 可以定义方法

@helper king(string str)
{   
    @str   
}
@for (int i = 0; i < 10; i++)
{
    @king(i.ToString());
}  

MVC对应关系,命名规范,映射文件名
Attribute :Get/Post
Filter
Html.Raw


http://www.cnblogs.com/leoo2sk/archive/2008/11/01/1324168.html

ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇:ASP.NET MVC全局观

 

   
 


小技巧,快速开发:
 调试:ReAttach或者Ctrl+Alt+P(调试,附加)
 接口跳转 :“查找所有引用”
 查找文件或者是方法名: Ctrl+,(编辑,定位)
 查找:Ctrl+F,Ctrl+Alt+F
 块状选择: Alt+选择
 代码生成:Alt+Shift+F10、for+Tab+Tab、Ctrl+E D
 代码提取:提取方法

扩展信息
 

约定大于配置 约定优于配置是一个简单的概念。 系统,类库,框架应该假定合理的默认值,而非要求提供不必要的配置。 在大部分情况下,你会发现使用框架提供的默认值会让你的项目运行的更快。

零配置并不是完全没有配置,而是通过约定来减少配置, 减少 XML

一直说C#是强类型语言,通俗地讲,便是指C#中的“变量”在开发时的类型便是明确的
  • 能够享受代码提示功能
  • 能够获得重构工具的支持
  • 能够在编译期发现更多错误

MVC纵向切割了开发过程中的代码,从服务器到浏览器层层分离,层次之间耦合度很低,因为它是顺着底层的开发脉络进行封装,所以有利于开发者对整个程序过程流转的理解。
不能被重用无法封安装,适合轻量级的开发,正好Web开发恰恰就是轻量级的,因为硬件,网络的限制也不需求 过于复杂的逻辑
WebForm 大量的组件因为硬件的瓶颈无法给WebForm带来什么优势 ;代码的封装是靠牺牲运行效率来提高开发效率,牺牲的运行效率通过提高硬件性能来解决



MVC Action Filter

ASP.NET MVC Framework支持四种不同类型的Filter:

  1. Authorization filters – 实现IAuthorizationFilter接口的属性.
  2. Action filters – 实现IActionFilter接口的属性.
  3. Result filters – 实现IResultFilter接口的属性.
  4. Exception filters – 实现IExceptionFilter接口的属性.

    Filter的默认的执行顺序按上面的列表中顺序进行。如验证(authorization)Filter永远都是最开始执行的,异常(exception)Filter永远都是最后执行的,当然你也可以根据需要通过Order属性设定过滤器执行的顺序。

    ASP.NET MVC Framework支持四种不同类型的Filter:

    Authorization filters – 实现IAuthorizationFilter接口的属性.

    Action filters – 实现IActionFilter接口的属性.

    Result filters – 实现IResultFilter接口的属性.

    Exception filters – 实现IExceptionFilter接口的属性.

    Filter的默认的执行顺序按上面的列表中顺序进行。如验证(authorization)Filter永远都是最开始执行的,异常(exception)Filter永远都是最后执行的,当然你也可以根据需要通过Order属性设定过滤器执行的顺序。

    示例代码

    全局筛选器

    //Global里加入筛选器

    filters.Add(new LoginCheckFilter());

    public class LoginCheckFilter : IAuthorizationFilter

    {

    //所有的代码都会进到这里 类似于 设置*号的 IHttpHandler

    public void OnAuthorization(AuthorizationContext filterContext)

    {

    var strUrl = filterContext.HttpContext.Request.Url;

    if (strUrl.ToString().Contains("UserLoginError"))

    {

    filterContext.HttpContext.Response.Write("我报错了");

    filterContext.HttpContext.Response.Redirect("http://baidu.com");

    }

    }

    }

    Controller筛选器

    [LoginCheckAuth]//这里加入标记,也可以加到Controller上面

    public ActionResult UserLogin()

    {

    return View();

    }

    public class LoginCheckAuth : AuthorizeAttribute

    {

    //返回Ture或者是False,能访问,或者是不能访问。可以用于权限判断

    //加了【LoginCheckAuth】的才会调用到这里,适合做权限控制

    protected override bool AuthorizeCore(HttpContextBase httpContext)

    {

    var CheckLogin = httpContext.Request.Url;

    httpContext.Response.Write("我YueQuan了");

    return false;

    }

    }

    扩展:httpHandler使用(类似Controller筛选器

    HttpHandler,Http请求的处理者,例如ScriptHandler、WebServiceHandler,IHttpHandler的实现都是为了处理某一类的请求。如ScriptHandler负责处理对脚本的请求。   

    当一个HTTP请求经同HttpModule容器传递到HttpHandler容器中时,ASP.NET Framework会调用HttpHandler的ProcessRequest成员方法来对这个HTTP请求进行真正的处理。以一个ASPX页面为例,正是在这里一个ASPX页面才被系统处理解析,并将处理完成的结果继续经由HttpModule传递下去,直至到达客户端。

    对于ASPX页面,ASP.NET Framework在默认情况下是交给System.Web.UI.PageHandlerFactory这个HttpHandlerFactory来处理的。所谓一个HttpHandlerFactory,所谓一个HttpHandlerFactory,是指当一个HTTP请求到达这个HttpHandler Factory时,HttpHandlerFactory会提供出一个HttpHandler容器,交由这个HttpHandler容器来处理这个HTTP请求。

    一个HTTP请求都是最终交给一个HttpHandler容器中的ProcessRequest方法来处理的。

    <!--IIS7,需要加到system.webServer节点下-->

    <system.webServer>

    <handlers>

    <add name="JpgHander" verb="*" path="*.jpg" type="MvcAuthFilterClass.CheckKingHandler, MvcAuthFilterClass, Version=1.0.0.0, Culture=neutral"/>

    </handlers>

    </system.webServer>

    public class CheckKingHandler : IHttpHandler

    {

    public void ProcessRequest(HttpContext context)

    {

    context.Response.Write("我进了,我是CheckKingHandler");

    }

    public bool IsReusable

    {

    get { return true; }

    }

    }

    扩展:httpModule使用(类似筛选器(AuthorizationFilter))

    HttpModule,Http模块。实际上就是那19个标准事件的处理者,或者说19个标准事件的订阅者,比如OutputCacheModule,SessionStateModule。

    负责监听HttpRequest,同时对HttpRequest增添或者过滤掉一部分内容。也就是说,当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说此时对于HTTP请求来讲,HttpModule是一个HTTP请求的“必经之路”,所以可以在这个HTTP请求传递到真正的请求处理中心(HttpHandler)之前附加一些需要的信息在这个HTTP请求信息之上,或者针对截获的这个HTTP请求信息作一些额外的工作,或者在某些情况下干脆终止满足一些条件的HTTP请求,从而可以起到一个Filter过滤器的作用。

    HttpModule实现了接口IHttpModule,我们可以自定义实现该接口的类,从而取代HttpModule。

    <!--IIS7,需要加到system.webServer节点下-->

    <system.webServer>

    <modules runAllManagedModulesForAllRequests="true" >

    <add type="MvcAuthFilterClass.CheckKingModule, MvcAuthFilterClass, Version=1.0.0.0, Culture=neutral" name="kingModel"/>

    </modules>

    </system.webServer>

    public class CheckKingHandler : IHttpHandler

    {

    public void ProcessRequest(HttpContext context)

    {

    //通过外层筛选的,才会进 如 verb="Get" path="*.jpg",必须是Get请求,路径是*.jpg

    context.Response.Write("我进了,我是CheckKingHandler");

    }

    public bool IsReusable

    {

    get { return true; }

    }

    }

    public class CheckKingModule : IHttpModule

    {

    public void Init(HttpApplication context)

    {

    //所有的都会进,这里做处理

    }

    public void Dispose()

    {

    }

    }






附件列表

MVC进阶讲解+小技巧-乱七八糟的更多相关文章

  1. YbSoftwareFactory 代码生成插件【二十一】:Web Api及MVC性能提升的几个小技巧

    最近在进行 YbSoftwareFactory 的流程功能升级,目前已经基本完成,现将用到的一些关于 Web Api 及 MVC 性能提升的一些小技巧进行了总结,这些技巧在使用.配置上也相当的简单,但 ...

  2. MVC 基架不支持 Entity Framework 6 或更高版本 即 NuGet的几个小技巧

    MVC 基架不支持 Entity Framework 6 或更高版本.有关详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=276833. 原因:mvc版 ...

  3. 必看!macOS进阶不得不知的实用小技巧

    不知道大家对使用苹果电脑的体验如何?您充分利用您的mac了吗?其实macOS上存在着许多快捷方式和技巧可以帮助简化我们的工作流程,提高效率,但是在日常生活中经常被人们忽略或者遗忘.以下是macdown ...

  4. asp.net mvc route 中新发现的小技巧

    在发现这个小技巧之前,我经常被某些问题困扰,我们以博客园为例 1:是分类名称 2:是分类url 3:点击分类,进入的页面,要显示分类的名称 4:点击分类,进入的页面,要用分类相关参数 在日常web的开 ...

  5. CSS进阶内容——布局技巧和细节修饰

    CSS进阶内容--布局技巧和细节修饰 我们在之前的文章中已经掌握了CSS的大部分内容,但仍有一些内容我们没有涉略,这篇文章就是为了补充前面没有涉及的内容,为我们的知识做出补充并且介绍一些布局技巧 当然 ...

  6. FineUI小技巧(5)向子窗口传值,向父窗口传值

    前言 FineUI中经常会用到启用IFrame的Window控件,这样有助于从物理上进行代码解耦和.IFrame的引入就会涉及传值问题,如何在父窗口和子窗口之间相互传值呢? 向子窗口传值 向子窗口传值 ...

  7. ( 译、持续更新 ) JavaScript 上分小技巧(一)

    感谢好友破狼提供的这篇好文章,也感谢写这些知识点的作者们和将他们整理到一起的作者.这是github上的一篇文章,在这里本兽也就只做翻译,由于本兽英语水平和编程能力都不咋地,如有不好的地方也请多理解体谅 ...

  8. iOS开发中调试小技巧

    对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...

  9. 小技巧之jQueryMobile

    使用JqueryMobile+MVC做一个手机网站,也有2个月了.有一些小小的经验,跟大伙们分享一下下 小技巧1: 禁用所有Ajax加载,它会很烦人的. $.mobile.ajaxLinksEnabl ...

随机推荐

  1. php获取http请求原文

    1. 取得请求行:Method.URI.协议 可以从超级变量$_SERVER中获得,三个变量的值如下: $_SERVER['REQUEST_METHOD'].' '.$_SERVER['REQUEST ...

  2. 微信小程序 图片裁剪

    微信小程序 图片裁剪 分享一个微信小程序图片裁剪插件,很好用,支持旋转 文档:https://github.com/wyh19931106/image-cropper 1.json文件中添加image ...

  3. 数据结构之双端队列(Deque)

    1,双端队列定义 双端队列:其两端都可以入列和出列的数据结构,如下图所示,队列后面(rear)可以加入和移出数据,队列前面(front)可以加入和移出数据 双端队列操作: deque=Deque() ...

  4. PHP将多个文件中的内容合并为新的文件

    function test() { $hostdir= iconv("utf-8","gbk","C:\Users\原万里\Desktop\日常笔记& ...

  5. HDU3549:Flow Problem(最大流入门EK)

    #include <stdio.h> #include <string.h> #include <stdlib.h> #include <queue> ...

  6. Linux(CentOS / RHEL 7) 防火墙

    CentOS / RHEL 7 防火墙 Table of Contents 1. 简述 2. 常用基本操作 2.1. 查看防火墙状态 2.2. 开启防火墙 2.3. 关闭防火墙 2.4. 开机自动启动 ...

  7. URL编码和解码

    1. 为什么需要编码 当数据不利于处理.存储的时候,就需要对它们进行编码.如对字符进行编码是因为自然语言中的字符不利于计算机处理和存储.对图片信息.视频信息.声音信息进行压缩.优化,将其“格式化”,是 ...

  8. C# 程序的关闭 讲究解释

    程序的关闭是很讲究的,处理的不好的话,将软件连续开启和关闭,当数次后在启动软件后程序会崩溃.或者程序退出很慢.细节决定成败,一款好的软件应该从各方面都要做严格地反复地推敲,力争做到无可挑剔.    有 ...

  9. Dubbo架构与底层实现

    一.Dubbo的设计角色 (1)系统角色Provider: 暴露服务的服务提供方.Consumer: 调用远程服务的服务消费方.Registry: 服务注册与发现的注册中心.1Monitor: 统计服 ...

  10. 手写web框架之开发一个类加载器

    ackage io.renren.common; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUti ...