分部视图在ASP.NET MVC中的应用

概述:  

在ASP.NET Web Form的开发经验中,对于User Control使用比较频繁,可以减少重复的代码,利于页面模块化,这个概念也被引入了ASP.NET MVC.即“分部视图”。

1、创建分部视图:

在解决方案管理器中,找到Views文件夹下的Shared文件夹,右键添加视图,选择创建为分部视图,如图:

2、修改分部视图:

1 <p>分部视图中的p元素</p>

3,在其他视图中引用分布视图:

1 @Html.Partial("~/Views/Shared/IncludePart.cshtml");
2 <p>原视图中的p元素</p>

效果如图所示:

4,第二种引用方法,代码如下:

1 @Html.Action("Test","Home")
2 <p>原视图中的p元素</p>

并且修改Home控制器中的Test动作方法,代码如下:

1         public ActionResult Test()
2         {
3             return View("~/Views/Shared/IncludePart.cshtml");
4         }

运行后的效果与3中的一致。

5,可以向Action中传递参数,代码如下:

1 @Html.Action("Test", "Home", new { name = "SharpL", id = 1 })
2 <p>原视图中的p元素</p>

修改分部视图中的代码为:

<p>我是分部视图</p>
<p>博客名为:@ViewBag.name</p>
<p>博客的id为:@ViewBag.id</p>

修改Home控制器中Test动作方法的代码如下:

1         public ActionResult Test(string name,int id)
2         {
3             ViewBag.id = id;
4             ViewBag.name = name;
5             return View("~/Views/Shared/IncludePart.cshtml");
6         }

运行后的效果如图:

6,普通的视图也可以作分部视图使用

代码如下:

@Html.Partial("~/Views/View1.cshtml")

其中View1为普通视图如下:

1 <p>我是普通视图中的p元素</p>

效果如图所示:

出处:https://www.cnblogs.com/SharpL/p/4641886.html

原文地址:https://www.cnblogs.com/mq0036/p/9082367.html

时间: 2024-11-05 22:48:30

分部视图在ASP.NET MVC中的应用的相关文章

asp.net MVC 中呈现指定区域下的分部视图

Html.RenderAction() 可以呈现分部视图. asp.net MVC就是有这种好处,可以将多个子视图无缝合成到一个视图上再输出,那么开发的时候,能够进行模块化开发.看上去同属一个页面上的东西,实际上分布于不同的物理视图文件,逻辑清晰得很. Html.RenderAction() 可以呈现分部视图,当然Html.RenderPartial()也可以.二者有区别.Html.RenderAction() 可以对应有控制器,Html.RenderPartial()直接指向视图. 所以某目前

关于 ASP.NET MVC 中的视图生成

在 ASP.NET MVC 中,我们将前端的呈现划分为三个独立的部分来实现,Controller 用来控制用户的操作,View 用来控制呈现的内容,Model 用来表示处理的数据. 从控制器到视图 通常,在 Controller 中,我们定义多个 Action ,每个 Action 的返回类型一般是 ActionResult,在 Action 处理的最后,我们返回对于视图的调用. public ActionResult Index() { return this.View(); } 默认情况下,

asp.net mvc 中的部分视图

使用方法:@Html.Action(action, controller)加载局部页面.例如在模板页中使用:@Html.Action("Contact", "Company")在CompanyController中有如下方法:public PartialViewResult Contact() {   return PartialView();} ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,

在 asp.net mvc中的简单分页算法

//第一步:建立如下分页实体类:namespace MVCPager.Helpers { /// <summary> /// 简单分页算法类 /// </summary> public class Pager { public int RecordCount { get; set; } public int PageIndex { get; set; } public int PageSize { get; set; } public int PageCount { get { r

Asp.net MVC中的约定

Asp.net MVC项目中有很多默认约定.包括控制器约定.视图约定等等. 一.控制器约定 1.Controller必须是非静态类 2.Controller必须实现接口IController 3.控制器的类名必须以Controller结尾:如HomeController: 如下面是一个标准Controller: 1 public class HomeController : Controller 4.项目中引用控制器时,例如使用HTML RenderAction方法时,只需要指定前半部分的名称:

Asp.Net MVC中使用ACE模板之Jqgrid

第一次看到ACE模板,有种感动,有种相见恨晚的感觉,于是迅速来研究.它本身是基于bootstrap和jqueryui,但更nice,整合之后为后台开发节省了大量时间. 发现虽然不是完美,整体效果还是不错,特此分享给园友.这一节先讲其中的Jqgrid.按照国际惯例,先上两张图. 集成了button,form,treeview以及日历,时间轴.chart等控件,非常丰富.下面是Jqgrid在MVC中的使用. jqgrid的加载,排序,查找都是基于后台方法,不是在内存中完成,但也有一些小坑.下面一一道

(四)ASP.NET MVC 中 Controller 给 View 传递数据的方式

1. ViewData: 以 ViewData["keyname"] = value 这样键值对的方式进行数据传送.在对应的 cshtml 中用 @ViewData["keyname"] 来获取值. 2. ViewBag: ViewBag 是 dynamic 类型的,是对 ViewData 的一人动态类型封装,用起来更方便,和 ViewData 共同操作一个数据 .在 Controller 中使用 ViewBag.keyname=value 来赋值,在 cshtml

asp.net MVC中控制器获取表单form提交的数据之实体类数据

第一次写记录文章,难免有不足之处:欢迎指出. 1.新建一个mvc项目如: 2.新建一个Test.cs 注意get,set方法不能简写 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 using System; using System.Collections.Generic; using System.Linq; usi

Asp.net MVC 中Controller返回值类型ActionResult

内容转自 http://blog.csdn.net/pasic/article/details/7110134 Asp.net MVC中Controller返回值类型 在mvc中所有的controller类都必须使用"Controller"后缀来命名并且对Action也有一定的要求: 必须是一个public方法 必须是实例方法 没有标志NonActionAttribute特性的(NoAction) 不能被重载 必须返回ActionResult类型 如: [csharp] view pl