zoukankan      html  css  js  c++  java
  • asp.net mvc Areas 母版页动态获取数据进行渲染

    经常需要将一些通用的页面元素抽离出来制作成母版页,但是这里的元素一般都是些基本元素,即不需要

    进行后台数据交换的基本数据,但是对于一些需要通过后台查询的数据,我们应该怎么传递给前台的母版页呢

    这里描述的是对于多个页面统一的数据部分,即多个页面中均保持一致且与各个页面无其他关系的页面,

    虽然我们可以通过razor使用C#语言来获取数据并写入页面中,但这就违背我们view中尽可能不处理数据的意愿了

    所以给出的解决方案是,通过ViewBag将需要的数据写入页面中,将读取数据的操作提取到baseController中,

    然后其他的控制的继承我们自定义的控制器,baseController需要继承Controller,同时需要导入using System.Web.Mvc;

    代码如下

    baseController.cs

     public class BaseController: Controller
        {
            public BaseController()
            {
                //传入我们需要的数据
                ViewBag.Clubs = "测试数据"
    
            }
        }

    继承自定义的BaseController

    public class HomeController : BaseController
        {
            public ActionResult Index()
            {   
                return View();
            }
        }

    将页面的公共部分提取为_main.cshtml保存到Shared目录中

    在母版页中写上@ViewBag.Clubs或其他需要的数据,

    然后添加@RenderBody()等内容渲染页面的其他部分

    至此还剩最后一步,在对应的view页面中添加对母版页的引用

    @{
        Layout = "~/Areas/student/Views/Shared/_main.cshtml";
    }

    2017.12.9 20:16

    记录下来留待后查,同时方便他人

  • 相关阅读:
    记录一个异常
    ajax4
    ajax3
    ajax2
    ajax
    break与continue的区别
    Dom
    Dom元素的操作
    javascript (2)
    javascript
  • 原文地址:https://www.cnblogs.com/ives/p/8012586.html
Copyright © 2011-2022 走看看