随笔分类 -  .net mvc

1
.net mvc
摘要:Autofac是应用于.Net平台的依赖注入(DI,Dependency Injection)容器,具有贴近、契合C#语言的特点。随着应用系统的日益庞大与复杂,使用Autofac容器来管理组件之间的关系可以“扁平化”错综复杂的类依赖,具有很好的适应性和便捷度。 在该篇博文中,我们将应用Autofac,以依赖注入的方式建立传统ASP.NET页面与服务/中间层之间的联系,建立“呈现”与“控制”的纽带。 那么,如何将依赖注入(Dependency Injection)植入ASP.NET中呢? ASP.NET页面生命周期的整个过程均被ASP.NET工作者进程把持,这也就基本上切断了我们想在... 阅读全文
posted @ 2012-08-22 15:35 dodo-yufan 阅读(15131) 评论(5) 推荐(1) 编辑
摘要:找到多个与名为“Home”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。如果是这样,请通过调用含有“namespaces”参数的“MapRoute”方法的重载来注册此路由。” 出现该问题的原因是在默认的Golbal.asax.cs文件中已经注册了默认路由 public class MvcApplication : System.Web.HttpApplication { public static void RegisterRoutes(RouteCollection rou 阅读全文
posted @ 2012-08-22 14:39 dodo-yufan 阅读(6885) 评论(2) 推荐(1) 编辑
摘要:ASP.NET MVC中,是依靠某些文件夹以及类的固定命名规则去组织model实体层,views视图层和控制层的。如果是大规模的应用程序,经常会由不同功能的模块组成,而每个功能模块都由MVC中的三层所构成,因此,随着应用程序规模的增大,如何组织这些不同功能模块中的MVC三层的目录结构,有时对开发者来说显得是种负担。 幸运的是,ASP.NET MVC允许开发者将应用划分为“区域”(Area)的概念,每个区域都是按照asp.net mvc的规定对文件目录结构和类的命名规则进行命名。在本文中,将介绍如何在ASP.NET MVC应用中使用Area进行模块管理。 什么是Areas? 简单来说,A... 阅读全文
posted @ 2012-08-22 14:18 dodo-yufan 阅读(11490) 评论(5) 推荐(5) 编辑
摘要:何谓Helper,其实就是在View中为了实现一些灵活功能而写的方法组。其实ASP.NET MVC的View是Aspx的页面,本身可以声明定义方法,那为什么要有Helper呢?其实无非是将界面与逻辑分离,而且Asp.net MVC也并不只支持Aspx一种View(还可以扩展出来很多),在扩展包中,也有Castle的NVelocity引擎和Boo,以及ViewSpark的页面。所以,如果在Aspx中定义方法的话会影响其扩展性和可移植性.而且代码也不太好看.一、UrlHelper.ActionUrlHelper的Action方法 用于生成一个URL地址,它的使用方法为当前Controller下In 阅读全文
posted @ 2012-08-17 17:17 dodo-yufan 阅读(2592) 评论(0) 推荐(1) 编辑
摘要:母版页(Master)1.母版页是与Controller无关的,母版页只是一个View文件,而没有任何Controller与之相对应。2.其实在ASP.NET MVC中View的aspx与母版页并不像WebForm中那样紧密关联。例如我想更换一个aspx的母版页,只要在Action中return 时指定所要使用的Master即可: 如图我有2个Master文件,而/Views/Home/Index.aspx则为 这时我们如果想要使用Site2做为Master,只要在Action中return View指定masterName的参数即可: 1: public ActionResult Ind.. 阅读全文
posted @ 2012-08-17 17:11 dodo-yufan 阅读(9441) 评论(0) 推荐(0) 编辑
摘要:许多时候我们会遇到如下场景在写一个编辑数据的页面时,我们通常会写如下代码 1: <input type="text" value='<%=ViewData["title"] %>' name="title" />由前篇我们所讲的Helper演化,我们思考,对于这种代码我们是不是也可以用一个Helper来自动绑定数据呢这当然是可以的,ASP.NET MVC提供了一个HtmlHelper用于生成有数据绑定的Html标签。1.ActionLink其中最常用的就是Html.ActionLink1.1基本 阅读全文
posted @ 2012-08-17 17:10 dodo-yufan 阅读(965) 评论(2) 推荐(0) 编辑
摘要:在做Asp.Net MVC项目中,都知道View负责页面展示数据或者提供页面收集数据,而所展示的数据或者收集的数据都是从Controller的Action中获取或提交到Controller的Action。这里的数据,可能是基础类型,或者是Model,或者是Model的部分内容,或者是集合比如List或Dictionary。数据从View传递到Controller的Action时,有几种方式,RouteData(url中的路由数据),QueryString(http get的查询参数如?page=2),Forms(表单post的数据), 或者ajax交互的json数据。而在Controller的 阅读全文
posted @ 2012-08-17 10:23 dodo-yufan 阅读(9870) 评论(3) 推荐(3) 编辑
摘要:因为如果在view页面中的路径直接写死为<from action="/Home/Save" method="post">那么当Global.asax.cs文件中的Routing自定义或随时修改后,还要连带修改数十个视图中的窗口发送路径.在MVC中,我们可以使用Html.BeginForm()Aspx代码 <% using (Html.BeginForm("Save","Home",FormMethod.Post)){ %> 窗口内容 <%}%> <% using (Html 阅读全文
posted @ 2012-08-16 17:16 dodo-yufan 阅读(4877) 评论(0) 推荐(0) 编辑
摘要:1、Controller类i、Controller必须为公开类;ii、必须以Controller结尾;iii、继承Controller基类或实现IController接口的类;iv、类中必须包含数个返回值为ActionResult的公开方法,这些方法在MVC中称为Action;2、Controller执行过程:当Controller被MvcHandler选中之后,下一步就是通过ActionInvoker选取适当的Action来执行,在Controller中,每一个Action可以定义零到多个参数,ActionInvoker会依据当前的RouteValue及客户端传来的信息准备可以输入Actio 阅读全文
posted @ 2012-08-16 17:10 dodo-yufan 阅读(12444) 评论(0) 推荐(1) 编辑
摘要:1、网址路由比对 2、执行Controller与Action3、执行View并返回结果在使用MVC中是由IgnoreRoute()辅助方法对比成功的,会导致程序直接跳离MVC的执行生命周期,将程序继续执行的权利交回给IIS,由IIS决定接下来应该由哪个模块或哪个处理例程(Handler)来执行。阶段详细接收应用程序的第一次请求在Global.asax文件中, Route对象 被添加到RouteTable对象.执行路由选择UrlRoutingModule 模块使用第一个在RouteTable 集合中匹配的Route 对象来创建RouteData对象, 然后它将使用这个RouteData对象来创建 阅读全文
posted @ 2012-08-16 17:07 dodo-yufan 阅读(13432) 评论(0) 推荐(3) 编辑
摘要:一.摘要本篇文章从基础到深入的介绍ASP.NET MVC中的Routing组件. Routing翻译过来是"路由选择", 负责ASP.NET MVC的第一个工作:识别URL, 将一个Url请求"路由"给Controller. 二.承上启下第一篇文章中我们已经学会了如何使用ASP.NET MVC, 虽然其中还有很多的细节没有深入了解, 但是对基本的处理流程已经有了认识:来了一个Url请求, 从中找到Controller和Action的值, 将请求传递给Controller处理. Controller获取Model数据对象, 并且将Model传递给View, 阅读全文
posted @ 2012-08-16 14:23 dodo-yufan 阅读(857) 评论(0) 推荐(1) 编辑
摘要:网址路由(Routing)在ASP.NET MVC中有两个主要用途,一个用途是匹配通过浏览器传来的HTTP请求,另一个用途则是将适当的网址返回浏览器。首先我们来看下第一个用途,也就是匹配通过浏览器传来的HTTP请求。客户端对ASP.NET网站发出请求时,能够通过Routing找到合适的HttpHandler来处理网页,大致的处理流程为:图一 客户端对ASP.NET 网站发出请求的流程如果HttpHandler是由MvcHandler来处理的,那么,此时就会进入ASP.NET MVC的执行生命周期,并且会找到适当的Controller与Action来对其进行处理,并将信息反馈到客户端。其次是将适 阅读全文
posted @ 2012-08-16 10:59 dodo-yufan 阅读(1313) 评论(0) 推荐(1) 编辑
摘要:ASP.NET MVC的TempData用于传输一些临时的数据,例如在各个控制器Action间传递临时的数据或者给View传递一些临时的数据,相信大家都看过“在ASP.NET页面间传值的方法有哪几种”这个面试题,在ASP.NET MVC中TempData的就是其中的一种传值方法。TempData默认是使用Session来存储临时数据的,TempData中存放的数据只一次访问中有效,一次访问完后就会删除了的。这个一次访问指的是一个请求到下一个请求,因为在下一个请求到来之后,会从Session中取出保存在里面的TempData数据并赋值给TempData,然后将数据从Session中删除。我们看一 阅读全文
posted @ 2012-08-16 10:46 dodo-yufan 阅读(22491) 评论(2) 推荐(4) 编辑
摘要:本文将讲述LINQ的基础查询(此文所有例子都使用LINQ to Object)在此之前,我们先创建一个用于示例的数据源:Student类:表示学生,包括学号、姓名及班级 Courses类:表示学生选择的课程,包括学号、课程名称及学时数DataCreator类:静态类,通过GenerateData方法产生示例数据生成的数据如下: 学号 姓名 班级 课程名称 学时 003 王五 二班 经济学 20 003 王五 二班 企业管理 20 003 王五 二班 财务管理 30 002 李四 一班 历史 20 002 李四 一班 政治 20 002 李四 一班 语文 30 001 张三 一班 数学 20 0 阅读全文
posted @ 2012-08-16 10:28 dodo-yufan 阅读(1967) 评论(1) 推荐(1) 编辑
摘要:LINQ即语言集成查询,是.NET Framework 3.5中新增的功能。其功能类似于数据库中的SQL语句(实际上LINQ就是针对.NET Framework的SQL):提供标准的、易于学习的查询和更新数据模式。从from开始用过SQL的朋友都知道,最简单的SQL语句SELECT record FROM tableName:获取表中的所有记录,那么对应于LINQ,其语法如下:from record in tableName select record。明显的差异是将from语句放到了句首,此种语法方式只是为了适应Visual Studio中智能提示(试想如果将from子句放在后面,先输入se 阅读全文
posted @ 2012-08-16 10:27 dodo-yufan 阅读(13240) 评论(1) 推荐(2) 编辑
摘要:ASP.NET MVC模式通过重新引进已经丢失的,或者至少已经没有使用很多年的模式,使其本身趋向更简单和“真实”的 HTTP体验(原文:The ASP.NET MVC pattern tends to lead itself into a more simplified and "true" HTTP experience by re-introducing patterns that have been lost, or at least, not followed in many years)。其中的一种模式是Post,Redirect,Get(PRG)模式,它可以&q 阅读全文
posted @ 2012-08-14 17:20 dodo-yufan 阅读(500) 评论(0) 推荐(0) 编辑
摘要:现有的HTML辅助方法ASP.NET MVC 1中发布了一套HTML辅助方法,可以用来在视图模板中帮助生成HTML界面。例如,要输出一个文本框,你可以在你的.aspx视图模板中使用Html.TextBox()辅助方法编写下列代码: 上面辅助方法的第一个参数提供了文本框的名称及id,第二个参数指定了它该有的值,然后上面的辅助方法会显示象下面这样的HTML到浏览器: 新的强类型HTML辅助方法大家对ASP.NET MVC 2要求的一个常用特性是,要我们支持强类型的HTML辅助方法,这样的辅助方法使用 lambda 表达式来引用传到视图模板中的模型或视图模型。这可以促成更好的编译时视图检查(可以在. 阅读全文
posted @ 2012-08-03 10:37 dodo-yufan 阅读(1436) 评论(0) 推荐(0) 编辑
摘要:Lambda表达式实际上是一个匿名函数。它包含表达式和语句,常用于创建委托或表达式目录树类型。所有Lambda表达式都是用Lambda运算符---------- =>,该运算符读为“goesto”。Lambda运算符的左边是输入参数(可能没有),右边是表达式或语句块。Lambda表达式返回右边表达式的结果。其基本格式如下: (input paramenters)=>expression 其中,parameters是一个参数列表,在Lambda只有一个输入参数时可以不适用括号,否则括号是必须的。两个或更多输入参数由括在括号中的逗号分隔,如以下代码所示,包括两个参数x和y。 (x,y) 阅读全文
posted @ 2012-08-01 14:30 dodo-yufan 阅读(6766) 评论(0) 推荐(0) 编辑
摘要:URL的获取很简单,ASP.NET通用:【1】获取 完整url (协议名+域名+虚拟目录名+文件名+参数) string url=Request.Url.ToString();【2】获取 虚拟目录名+页面名+参数: string url=Request.RawUrl;(或 string url=Request.Url.PathAndQuery;)【3】获取 虚拟目录名+页面名:string url=HttpContext.Current.Request.Url.AbsolutePath;(或 string url= HttpContext.Current.Request.Path;)【4】获. 阅读全文
posted @ 2012-08-01 13:38 dodo-yufan 阅读(39332) 评论(1) 推荐(4) 编辑
摘要:1.Html.BeginForm() 该方法用于构建一个From表单的开始,他的构造方法为: Html.BeginForm("ActionName","ControllerName",FormMethod.method) 一般构建一个表单结构如下 <% using(Html.BeginForm ("index","home",FormMethod.Post)){ %> 。。。。。。 <%} %> 他将在客户端产生一个类似<form action="/account/login 阅读全文
posted @ 2012-07-31 17:33 dodo-yufan 阅读(47350) 评论(1) 推荐(0) 编辑

1