• MVC项目总结


    View命名

    View下有多个模块的文件夹,我们根据微软的规定,每个模块下的首页都为Index.cshtml命名

    获得当前页面的控制器名称

    var currentControllerName = this.ViewContext.RouteData.Values["controller"].ToString();

    获得当前循环数组的index

    @foreach (var banner in banners)
    {

    var index = banners.IndexOf(banner);

    }

    @using

    如果view里边需要频繁引入某个命名using XXX,我们选择在_ViewImports.cshtml文件中引入,相当于整个项目中都引用;

    例如,在VR课堂项目中的该文件我们添加以下两行,整个项目中都可以使用:

    @using vrlive.Models
    @using vrlive.BLL

    view直接访问BLL里边的仓库文件

    view中可以直接访问BLL文件夹下的仓库文件,来访问数据库,获得所需的信息,方法如下:

    1. 在view中使用inject引入所需仓库文件@inject BannerRepository BannerRepository
    2. 获得该仓库下的信息:var banners = BannerRepository.GetBannerList();
    3. 使用变量banners,即可得到GetBannerList()函数下返回的数据;

    定义数组

    • new string[] { "大一课程", "大二课程", "大三课程", "大四课程" }
    • string[][] orderType = new string[][] { new[] { "最新", "AddTime" }, new[] { "热门", "VisitCount" }, new[] { "关注量", "FavoriteCount" } };

    类型转换

    • Convert.ToInt32(ViewData["pageNo"]): 将object转换为number类型
    • ViewData["currentVideoPath"] as string:将object转换为string类型
    • Convert.ToBoolean(ViewData["currentVideoIsLive"]):将object转换为bool类型

    获取当前url

      • 获取当前url的参数:
        @using Microsoft.Extensions.Primitives

        StringValues videoId;
        this.ViewContext.HttpContext.Request.Query.TryGetValue("singleVideoId", out videoId);
        var singleVideoId = videoId.ToString();

      • 获取当前的url包括参数
        string url = this.ViewContext.HttpContext.Request.Path + this.ViewContext.HttpContext.Request.QueryString; 

  • 相关阅读:
    vim /home/yuanyc/.bashrc export LC_ALL=zh_CN.UTF-8
    mongodb
    关于RegisterClass和CreateWindow
    c++中sqlite中文路径创建数据库失败的问题
    Layered Window 透明窗体的实现总结
    c++单列模式与线程安全
    Windows下API Hook 技术
    COM编程大致梳理
    关于c++多态
    几个多字节和UNICODE及UTF-8之间相互转化的函数
  • 原文地址:https://www.cnblogs.com/maoyazhi/p/6104428.html
Copyright © 2020-2023  润新知