开发步骤
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. KERNEL_SECURITY_CHECK_FAILURE

    出现错误提示重装系统可以解决问题,但不需要重装系统.win8错误提示:KERNEL_SECURITY_CHECK_FAILURE提示对应错误代码:0x00000139 (0x00000003, 0x8 ...

  2. 线性dp,分层图思想

    题目大意:给你一串数字,一串运算符,求递推用完运算符时答案的最大值----->线性dp dp[i][j] i表示所用数字的个数   j表示所用字符的个数 分层图思想 所有字符必须用完 所以取最后 ...

  3. 用单元测试来调试SilverFish AI

    [TestFixture] public class AiTest { [Test] public void Test() { Settings.Instance.LogFolderPath = @& ...

  4. git-本机内容git至github

    1.修改仓库的名字 github中右上角/settings/Account: 修改后显示的变化: 2.本地和github账号创建联系 (base) localhost:~ ligaijiang$ ss ...

  5. P2456 [SDOI2006]二进制方程

    P2456 [SDOI2006]二进制方程 题解 拿个样例模拟一下发现 把等式两边对应展开,每个位置的填数都是一一对应的 比如第二个样例 分类讨论: (1)xi  yi  都是数字,但是不相同,此时无 ...

  6. nginx开启目录浏览,解决中文乱码问题

    nginx开启目录浏览,解决中文乱码问题 方法如下: server { listen 80; #listen [::]:80; server_name gongzi.liwenhui.xin gz.l ...

  7. Intel64及IA-32架构优化指南第8章多核与超线程技术——8.9 其它共享资源的优化

    8.9 其它共享资源的优化 在多线程应用中的资源优化依赖于处理器拓扑层级内相关联的Cache拓扑以及执行资源.在第7章中讨论了处理器拓扑以及标识处理器拓扑的一种软件算法. 在带有共享总线的平台中,总线 ...

  8. 表单中使用<button>的注意点

    本文主要记录了我调查问题的思路想法,想看结论的同学直接拖到最后吧 上周在做项目的时候,有一个需求是在页面中加一个按钮,点一下查询数据库将内容填充在表格中.这不是很简单嘛,页面加个按钮,发送ajax请求 ...

  9. 错误 MSB6006 CL.exe 已退出,代码为2

    环境 WIN10 + VS2019 社区版 按照其他网友的方法说 解决方法: 1 一个类内部的定义返回类型为double的方法种没有写return语句. 2 变量没有初始化也会导致这种情况. 但是设置 ...

  10. shell脚本:统计分析 /home/ 目录用户磁盘使用情况

    一.统计单台机器 /home/ 目录下磁盘空间使用 top3 的用户 common.sh 脚本用于统计 /home/* 目录下存储空间 top3 的用户. du -sb /home/* |sort - ...