MVC |分部视图 PartialView()

介绍如何定义

其实它和普通视图没有多大区别,只是创建分部视图的时候视图里没有任何内容,你需要什么标签你自己加。第二就是分部视图不会执行_ViewStart.cshtml中的内容)

控制器


PartialViewDeomController控制器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApp.Controllers
{
    public class PartialViewDeomController : Controller
    {
        //
        // 分部视图的作用一般用于嵌到如一些正常的视图中去。(类似与自定义控件)相当于: Server.Execute(string path)

        public ActionResult PartialIndex()
        {
            //View()方法返回的视图默认都会去执行_ViewStart.cshtml中的内容
            //return View();

            //分部视图不会去执行_ViewStart.cshtml中的内容(分部视图以PartialView()返回)
            return PartialView();
        }
    }
}

PartialIndex 视图

<!--注意,创建分部视图后,视图里是没有任何东西的。自己需要什么标签,就加什么标签。这个视图的用法就是到时候嵌套到一些以View()返回的正常视图中去-->

<select id="dp1">
    <option value="0">湖南</option>
    <option value="1">广东</option>
    <option value="0">上海</option>>
</select>

<select id="dp2">
    <option value="0">纽约</option>
    <option value="1">洛杉矶</option>
    <option value="0">华盛顿</option>>
</select>


使用介绍(我们发现它与普通视图是差不多的)

PartialViewDeomController控制器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApp.Controllers
{
    using MvcApp.Models;
    public class PartialViewDeomController : Controller
    {
        //
        // 分部视图的作用一般用于嵌到如一些正常的视图中去。(类似与自定义控件)相当于: Server.Execute(string path)

        public ActionResult PartialIndex()
        {

            var list = new List<T_UserInfo>()
            {
                new T_UserInfo(){Id=1,UserName="无盐海",Name="凡斌"},
                new T_UserInfo(){Id=1,UserName="阿宝",Name="周晶"},                         
            };

            //分部视图不会去执行_ViewStart.cshtml中的内容(分部视图以PartialView()返回)
            return PartialView(list);
        }
    }
}

PartialIndex视图

@model List<MvcApp.Models.T_UserInfo>

<select id="dp1">
    @{
        foreach (var item in Model) 
        { 
             <option value="0">@item.Name</option>
        }
    }
</select>

真实的使用介绍 (重点)

PartialViewDeomController控制器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApp.Controllers
{
    using MvcApp.Models;
    public class PartialViewDeomController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
        
        // 分部视图的作用一般用于嵌到如一些正常的视图中去。(类似与自定义控件)相当于: Server.Execute(string path)

        public ActionResult PartialIndex()
        {

            var list = new List<T_UserInfo>()
            {
                new T_UserInfo(){Id=1,UserName="无盐海",Name="凡斌"},
                new T_UserInfo(){Id=1,UserName="阿宝",Name="黄雪辉"},                         
            };

            //分部视图不会去执行_ViewStart.cshtml中的内容(分部视图以PartialView()返回)
            return PartialView(list);
        }
    }
}

Index视图与PartialIndex分部视图。(注意:这里是在Index视图里调用PartialIndex分部视图)

@{
    Layout = null;
}
@using MvcApp.Models;
<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <script src="~/Scripts/jquery-1.8.2.js"></script>
</head>
<body>
    <div id="loadData"></div>

    <div>
        <!--第一种方式:同一控制起下调用分部视图-->
        @Html.Partial("PartialIndex", new List<T_UserInfo>() { new T_UserInfo() { Id = 1, UserName = "无盐海", Name = "凡斌" }, new T_UserInfo() { Id = 1, UserName = "阿宝", Name = "周晶" }, })

        <!--第二种方式:同一控制起下调用分部视图-->
        @{
            Html.RenderPartial("PartialIndex", new List<T_UserInfo>() { new T_UserInfo() { Id = 1, UserName = "无盐海", Name = "凡斌" }, new T_UserInfo() { Id = 1, UserName = "阿宝", Name = "周晶" } });
        }

        <!--第三种方式:可以跨控制器调用分部视图(注意:如果通过这种方式调用分部视图,如果在再PartialIndex这个action中有传参给分部视图,则在此处调用就不需要再传递参数了)-->
        @{Html.RenderAction("PartialIndex", "PartialViewDeom");}

        <!--第四种方式:也是可以跨控制器调用分部视图。和第三种是一样的-->
        @Html.Action("PartialIndex", new { controller = "PartialViewDeom" })

        <!--第五种方式:用ajax来调用:如:jquery的Load()方法-->
        <script type="text/javascript">
            $(function () {
                $("#loadData").load("/PartialViewDeom/PartialIndex"); //将PartialIndex分部视图中的内容加载到id为loadData这个元素中去
            })
        </script>
    </div>action
</body>
</html>


  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值