一:主视图中使用Html.RenderPartial来调用子视图(注意,这里是直接调用子视图,而没有去调用子Action ) 在没有使用母版页的主视图中(也就是设置了layout为null的视图中),使用 Html.RenderPartial  可以调用分部视图(只调用视图,不调用action),并且使用 ViewData 来从主Action里面传值到主视图,或者是分布视图 最后生成的html如下   二:在主视图中按钮用ajax调用子action并在子action中使用return Parti…
结论: ViewData 适用于 在一次请求中 传递数据  . 比如我们从 主Action 到 主视图, 然后在 主视图中  用 RenderAction 请求子Action的时候,就是算作 一次请求. 场景,我们在 主页面中,有一个  login登陆模块,  我们判断,如果 用户是登陆的,那么就显示 账号密码,  如果用户没有登陆, 则显示 登陆框 先来看看 我们的代码先运行  /home/index  这个Action 然后到了前台之后, 前台的CShtml中 直接使用 Html.Rendy…
一:后台使用SelectListItem 传值给前台显示Select下拉框 我们先来看数据库的订单表,里面有3条订单,他们的用户id对应了 UserInfo用户表的数据,现在我们要做的是添加一个Order控制器,显示订单列表,并且在修改订单的时候,把用户的id 用 select 下拉框显示出来,并且可以提交修改数据   1.1 我们通过比较原始的方法,来把数据 传递到前台后,前台使用  循环来显示 select 并且显示是哪个元素被选中 我们在前台的cshtml中,使用 @model 命令 指定…
我们在MVC的代码中,经常会看到这样的一个 代码 可能有人会有疑问,既然我定义的是ActionResult,为什么返回值会是View方法呢? 其实这个View方法的返回值的类型是ActionResult的子类ViewResult   我们查看MVC源码可以看到 ActionResult是个抽象类,  ActionResult 有多个派生类(子类),有的子类又有子类 (例如 ViewResultBase 就有  ViewResult子类 和  PartialViewResult 这2种子类) 每个…
在上一篇文章中, http://www.cnblogs.com/joeylee/p/3790980.html  我们用 PD15.1 来设计了数据库,并且生成 了sql数据库,现在我们用 vs2013来试试  用 ModeFirst模式来设计数据库,并且生成数据库, 在PD中的表结构如下 下面我们用 vs2013来设计一下 创建2个表,并且在空白地方 新增 关联 为 一对多 我们根据这个模型,来生成数据库看看 点击生成后,我们看到 数据库里面表已经生成. 而且还生成了外键.   下面我们来把剩下…
1:项目结构 2:每层添加对其他层的引用,这里我们把除了Web层之外的所有的层生成的文件都放到解决方案下的Library文件夹下,然后每个项目分别来引用里面的dll项目文件. 我们在Model项目上,右键属性->生成-> 在下面的输出里面,选择上一级的 Library文件夹 2.2 我们调整项目的生成顺序 ,在解决方案或者是任意项目上右键,选择 生成依赖项,调整各个项目的依赖,这样的目的就是调整项目的生成顺序. 注意,这里你选择依赖项,并没有给项目与项目之间增加了dll的引用,只是单纯的修改了…
当客户端请求 /Product/Index的时候, 如果在视图的根目录下有 _ViewStart.Cshtml 就会先执行这个,再去执行 Product文件夹下的Index视图, 如果Product文件夹下也有 _ViewStart.Cshtml文件,那么优先执行这个文件,再去执行 Index视图 根目录下的ViewStart中的数据,可以通过 Page.Title这样 或者是 PageData["key"] 这样传递给 下面的Product下的ViewStart视图,直至到目标 In…
一:Razor视图引擎的核心原理 Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项 ,他是一个视图引擎 他的核心原理,就是当读取到 @符号的时候,就认为这是开始c#代码,并且 会自动寻找 {  } 作为开始和结束.但是当他不管在任何地方碰到<> 和 </>的时候,就不会当做是c#代码,而是当做html代码,我们会看到,在真正生成的 视图类代码里面  <span>xx</span>  会直接被 Response.Writ…
  我们还是以订单表为例   1:系统推荐的方法,先查询出来,然后调用remove方法进行删除 我们删除id大于等于4的 static void Main(string[] args) { Delete(o => o.Id >= 4); //这里的参数是个 lambda 表达式 }   public static void Delete(Expression<Func<Order, bool>> whereLambda) { //先查询 List<Order>…
情景:用户表和订单表是一对多的关系,即 一个 Userinfo  对应对应有 多个 Order表   如果我在EF中,先创建一个用户,然后创建3个订单,然后关联这1个用户和3个订单的关系,毫无问题. 但是:当我如果想创建2个用户,6个订单,并且分别去关联的时候,就提示报错 无法确定"XXX"关系的主体端.添加的多个实体可能主键相同 原因可能是: 当我们添加2个用户的时候,2个用户的id主键都是0,这样当保存到数据库的时候,就报错了. (疑问:但是订单1到6,他们的id也是主键,也是0,…