MVC3项目模板自带的登录模型类如下: public class LogOnModel { [Required] [Display(Name = "User name")] public...public bool RememberMe { get; set; } } MVC3自带的模板项目中已经有了: <add key="ClientValidationEnabled" value="true...string name) { return String.Format(CultureInfo.CurrentCulture, "{0}不是正确的电话号码...// 生成时间 2013-03-12 16:05:27 by App // 对此文件的更改可能会导致不正确的行为,并且如果 // 重新生成代码,这些更改将会丢失。...= null && ModelState.IsValid) 只有都为true时才通过双向验证,有力保证系统数据库的安全 总结:其实极其简单的演示,我们创建的MVC3项目中实例已经可以看出来,然而我们封装的验证有效的重用于项目之间
属性,允许通过后绑定的字典将数据传送给视图模板,在 MVC3 中,你可以通过 ViewBag 来更加简单的完成。...方法接收 JSON 编码的数据并且模型化为 Action 的参数。...客户端模板允许你通过客户端的模板来格式化和显示一个或者多个数据,MVC3 允许你简单的连接客户端模板和服务器端的 Action 方法,通过 JSON 来发送和接收数据,更多的信息参考:Scott Guthrie's...在 MVC3 中,你可以增加项目模板,视图引擎,单元测试项目框架到新建项目对话框中。...脚手架的改进 MVC3 中的脚手架对于主键提供了更好的支持,例如,脚手架的模板不会将主键加入的编辑表单中了。
step1.新建MVC3项目 打开新建项目窗口,在“已安装的模板”列表中选择“Web”,在右侧应用程序模板列表中选择“ASP.NET MVC3 Web应用程序”,修改项目名称为“MVCHelloworld...step2.选择项目模板 在新建MVC3项目窗口,我们选择创建一个空的MVC3项目,使用Razor视图引擎,并勾选中“使用HTML5语义标记”,点击“确定”按钮,完成项目创建。 ?...在打开的添加控制器窗口中,修改控制器的名称为“HomeController”,模板为“空控制器”,如下图,点击“添加”按钮完成添加。 ? ...属性,MVC2 中的控制器支持 ViewData 属性,允许通过后绑定的字典将数据传送给视图模板,在 MVC3 中,你可以通过 ViewBag 来更加简单的完成。...OK,本节就到此结束了,在本节中,我们演示了如何创建MVC3项目、添加控制器、添加视图、为视图传递参数等操作,在下一节中,我们会引入实体模型、Entity Framework4.1 Code-First
View()方法时),这时候Asp.Net MVC回到Views文件夹下找到Controller名字相同的文件夹下面找到具体的页面进行渲染,当然如果找不到会去Shared文件夹下去找。...第二节:Asp.Net MVC的请求处理模型 在上一篇中我们也简单做了个小例子,直接添加一个Controller,然后在Action上添加一个View,直接运行,然后就在我们面前呈现了一个普通的Html...那我们详细解释一下这种开发方式或者说开发模型。在讲解之前我们先认识几个概念: Controller:控制器。...Model:很多人把Model理解成领域模型,而MVC本身是一个表现模式,它是更倾向于UI层的一个框架,所以一般我们指定的Model呢在使用时一般作为ViewModel来用,但是总的MVC的思想呢,Model...总结一下: Asp.Net MVC所有的请求都归结到Action上,而且Asp.Net MVC请求--处理--响应的模型非常清晰,而且没有WebFrom那种复杂的生命周期,整个请求处理非常明晰简单,又回归到了最原始的
Razor引擎由.NET MVC3 版本引入,语法简单而雅致,最明显的变化是用“@”替代“”。创建项目时,两种视图引擎只能选其一。...)) 3 { 4 @a.Tilte 5 } 6 强类型视图既能获得dynamic的简洁语法,又能获得强类型和编译时检查的好处(比如正确的输入属性和方法名称)。...但要注意这里需要输入模型类型的完全限定类型名(名称空间和类型名称),如下所示:1 @model IEnumerable 2 ...我们可以使用标准的字典语法设置或读取其中的值: ViewData["CurrentTime"] = DateTime.Now; 尽管这种语法现在也能用,但是MVC3提供了更简单的语法,可以利用C#4的dynamic...动态值不能作为一个参数传递给扩展方法,因为C#编译器为了选择正确的扩展方法,在编译时必须知道每一个参数的真正类型。
3 ,常见的情况是控制器需要向视图提供一些信息,所以会传递一个数据转移对象,叫做模型(此处模型指的是数据容器,就是类似于Javabean),而视图将这个模型转换为一种适合显示给用户的格式。 ?...)) 3 { 4 @a.Tilte 5 } 6 强类型视图既能获得dynamic的简洁语法,又能获得强类型和编译时检查的好处(比如正确的输入属性和方法名称)。...但要注意这里需要输入模型类型的完全限定类型名(名称空间和类型名称),如下所示:1 @model IEnumerable 2 ...我们可以使用标准的字典语法设置或读取其中的值: ViewData["CurrentTime"] = DateTime.Now; 尽管这种语法现在也能用,但是MVC3提供了更简单的语法,可以利用C#4的dynamic...动态值不能作为一个参数传递给扩展方法,因为C#编译器为了选择正确的扩展方法,在编译时必须知道每一个参数的真正类型。
可以从上图中看出,区域的功能类似一个小的MVC项目,麻雀虽小五脏俱全,有自己的控制器、模型、视图还有路由设置。...二、模板页—封装页面变化点,构建快速View开发模板 在传统的WebForm开发模式中,我们使用MasterPage作为模板页。那么在MVC3 Razor视图设计中,我们怎么来使用模板页呢?...当创建具有模板页的内容页的时候,内容页就呈现在模板页中@RenderBody()所在的位置,一个模板页中只能有一个@RenderBody()。 ...(2)在Models中新增一个类,取名为:Product,作为我们要测试的实体模型。...(2)游响云停,《ASP.NET MVC3细嚼慢咽-(2)模板页 》,http://blog.csdn.net/zx13525079024/article/details/8301943 (3)李林峰
经测试,该属性存在BUG,但是可以通过MenuTree.Config.DrawSearchToolbar字段进行正确的设置。...1.5.CustomSearchFunction:设置菜单搜索栏的搜索函数。经测试,该属性存在BUG,但是可以通过MenuTree.Config.SearchFunction字段进行正确的设置。...1.2.DefaultToggledState:菜单项的默认切换状态。其中,true表示展开状态,false表示收缩状态。经测试,该字段存在BUG,但是可以通过Toggled属性进行正确的设置。...12.AddIcon(this IEnumerable menuItems, Texture / EditorIcon / Sprite icon):内部调用AddIcon(this IEnumerable...14.AddIcons(this IEnumerable menuItems, EditorIcon icon):首先遍历菜单项列表中的每一个菜单项。
在接下来的部分中,我们将提供从用于演示 ASP.NET MVC3 的 MVC 音乐商店应用程序迁移 ShoppingCartController.cs 的示例。...迁移此 Web 应用的第一步是创建一个新的 ASP.NET Core Web 应用(模型-视图-控制器)项目。此模板将添加对控制器的支持,并在 Program.cs 文件中映射控制器的默认路由。...一旦我们有了新的项目设置,我们将删除默认的 HomeController 以及 Home/Index 和 Home/Privacy 的视图文件,以便我们可以从 MVC3 Music Store Web...您可以共享模型 现在我们可以共享控制器,我们想要共享它们返回的模型。在许多情况下,当我们通过向 csproj 文件添加另一个 来包含它们时,这才开始起作用。...但是,如果您的模型也引用 System.Web,那么我们可以使用刚刚用于控制器的相同方法。首先更新命名空间,以便相同的类文件可以存在于两个项目中。
这种强类型使得更好的在编译时检查您的代码, 并在Visual Studio 编辑器中提供更加丰富的智能感知(IntelliSense)。...当创建操作方法和视图时, Visual Studio 中的scaffolding机制(也就是通过一个强类型的模型)使用了MoviesController类和视图模板。...Create和Edit方法还有视图模板都在传递电影的强类型模型对象。 看一下Index.cshtml视图模版和MoviesController.cs中的Index 方法。...(是IEnumerable对象),所以在循环中的每个item对象的类型是Movie类型。...好处之一是,这意味着您可以在代码编译时进行检查,同时在代码编辑器中支持更加全面的智能感知: ?
强类型模型和 @model 关键字 在本系列之前的教程中,您看到了使用ViewBag对象,从控制器传递数据或对象给视图模板。ViewBag是一个动态的对象,提供了方便的后期绑定方法将信息传递给视图。...ASP.NET MVC 还提供了传递强类型数据或对象到视图模板的能力。这种强类型使得更好的在编译时检查您的代码并在Visual Studio 编辑器中提供更加丰富的智能感知。...创建和编辑方法还有视图模板都在传递电影的强类型模型对象。 看一下Index.cshtml视图模版和MoviesController.cs中的Index 方法。...: @model IEnumerable 此@model声明使得控制器可以将强类型的电影列表Model对象传递给View视图。...(是IEnumerable对象),所以在循环中的每个item对象的类型是Movie类型。
其实这是构建与CTS之上的一种由编辑器负责处理的新的查询语法,它不是C#也不是VB.NET之类的托管语言。...LINQ的语法最终也是IL的语法,当我们编写LINQ的查询表达式的时候其实编辑器已经智能的帮我们翻译成对象的方法。太多的原理在下一结介绍。...编辑器负责对LINQ进行处理而不是CLR负责对LINQ进行处理,编辑器将LINQ处理成框架所实现的基本接口集。记住,LINQ是语法糖层面的,它不是C#不是VB.NET更不是CLR的基本内核的支持。...泛型的IEnumerable接口继承自IEnumerable接口,该接口表示可迭代的数据集合。Linq to object 也就是查询IEnumerable集合。...组件开发人员首要的任务就是创建对象模型,该对象模型应该是真正数据源的抽象模型,以便于该对象可能成功的被放入到IQueryable中进行查询。
>mono 讨论:“Mono是个跨平台的.NET”是否是个正确的说法 CentOS5.1下跑Mono和Asp.net 主要城市公交路线下载Mono版(使用MonoDevelop开发) 以levenblog...:三、平台的兼容性 ASP.NET MVC3 on Mono的折腾(一):Windows下的部署 ASP.NET MVC3 on Mono的折腾(二):Linux(openSUSE)下的部署 mono傻瓜化...编辑器无法代码完成的问题 关于IIS、Jexus、Node.js、OpenResty的简单测试 How to Install Jexus Web Server 5.3 on Ubuntu 13.04 【...高版本VS发布时预编译导致Mono中Razor找不到视图 一键部署mono 免费空间支持c# 再也不担心伙食费换空间了 绿色版的Linux.NET——“Jws.Mono” 兼容Mono的下一代云环境Web...项目的组成说明 Harries-高性能分布式Asp.net通信框架 CentOS7 + mono +Jexus 环境的搭建 VS2013中的MVC5模板部署到mono上的艰辛历程 如何利用mono把.net
在创建的Views|Shared下,打开_Layout.cshtml。模板中添加了一些菜单、按钮、复选框、简单的输入框等Wijmo控件。...然后再模板的Scaffolding选项窗口中选择如下设置: ? 单击Add,Visual Studio将生成所有需要的东西。...最大的亮点是这些生成的文件为您的工程构建了起始的工程文件目录结构,当然你也可以修改它,Scaffolding模板的优美之处在于生成后您可以按照您的意愿来扩展它。...运行 仅仅通过以上步骤,我们就实现了简易的ToDoList。切换到ToDoList页面,应用程序会给模型创建数据源,首先展示给我们的是一张空表格。...这些生成的文件为您的工程构建了起始的工程文件目录结构,当然你也可以修改它,Scaffolding模板的优美之处在于生成后您可以按照您的意愿来扩展它。
现在的 Web 开发大多都是前后端分离的方式,后端接口的正确使用显得尤为重要,本文讲下在 dotNET Core 3.X 下使用 Web API 。...可以看到在 WeatherForecastController 类的上面自动添加了 [ApiController] 特性,添加此特性后,会对 Api 功能有所加持,比如: 自动模型状态验证 意思是当客户端传递的模型数据...HTTP 状态码 正确的返回状态码有助于客户端分析请求返回结果和问题排查,常用的状态码如下: ?...正确的做法应该是对参数做相关校验最终返回相应的 4XX 的状态码。...输入参数 模型绑定 接口的输入参数就是通过模型绑定将 HTTP 请求中的值映射到参数中,模型绑定有以下六种: [FromRoute]:通过路由的 URL 中取值,可以自动推断; [FromQuery]:
当然,你也可以创建一个Web API项目,利用 Web API模板,Web API模板使用 ASP.Net MVC提供API的帮助页。...添加Model 一个模型就是在你的应用程序中展示数据的一个对象。...ASP.NET Web API 可以自动序列化你的模型到JSON,XML或一些其它格式,然后把已序列化的数据写入到HTTP响应消息的正文。只要客户端可以读取序列化的数据,那么它同样可以反序列这个对象。...,分开手机我们的服务是一个好主意,这种方式,我们可以改变后备存储,而不用修改服务器的实现,这种模型的设计叫做仓储模型,首先建立一个接口 namespace WebAPIDemo.Models {...这个参数被映射到URI路径中的id字段。这个Asp.Net Web API框架自动把id参数转换为正确的int数据类型,如果id无效,就会抛出一个HttpResponseException异常。
2】.LINQ优雅前奏的音符 2.1.隐式类型(由编辑器自动根据表达式推断出对象的最终类型) 隐式类型其实是编辑器玩的语法糖而已,但是它在很大程度上方便了我们编码。...3 /// 4 public static IEnumerable FilterByYield(IEnumerable ObjectList...然后必须使用Lambda表达式才能做正确的类型推断,如果直接将带有参数的某个方法作为委托的参数进行传递是无法进行真确的类型推断,这里我表示很不理解。贴出代码与大家讨论一下这个问题。...而如果我们使用字符串的方式来表达逻辑的结构,那么我们只能在运行时才能知道它的正确性,这样的正确性是很脆弱的,不知道在什么样的情况下会出现问题。...表达式目录树的对象模型; 上面简单的介绍了一下表达式目录树的用意和基本的原理,那么表达式目录树的继承关系或者说它的对象模型是什么样子的?
DataType属性用于指定类型的数据,在本例它是一个日期,所以不会显示存放在该字段时间详情。DisplayFormat属性在Chrome浏览器里有一个bug:呈现的日期格式不正确。...绑定(Bind)属性是另一个重要安全机制,可以防止黑客攻击(从over-posting数据到模型)。应该只包含在bind属性属性,本教程中使用的简单模型,模型中绑定所有数据。...如果找不到一 部电影,则返回 HttpNotFound 。...注意,视图模板在文件的顶部有 @model MvcMovie.Models.Movie的声明,这将指定视 图期望的模型类型为` Movie。...视图模板在文件的顶部有 @model MvcMovie.Models.Movie的声明,这将指定视 图期望的模型类型为 Movie。 ? 处理 POST 请求 回看前面的Eidt的Post方法。
/// 获取 visual tree 上的祖先元素及自身 public static IEnumerable GetVisualAncestorsAndSelf...visual tree 上的后代元素 public static IEnumerable GetVisualDescendants(this DependencyObject...(this DependencyObject element) { } /// 获取 visual tree 上的同级别的兄弟元素 public static IEnumerable<...3.1 不要在OnApplyTemplate中使用 FrameworkElement在生成当前模板并构造Visual Tree时会调用OnApplyTemplate函数,但这时候最好不要使用VisualTreeExtensions...无论我的记忆是否出错,正确的做法都是使用 GetTemplateChild 来获取ControlTemplate中的元素。 3.2 深度优先还是广度优先 ?
领取专属 10元无门槛券
手把手带您无忧上云