• 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; 

    跳转至登录页面时,有多个参数无法return问题

    Uri.UnescapeDataString(Request.QueryString.Value);是解决获取当前页面的url没有解析的问题。
     public IActionResult Login(string returnUrl)
            {
                var queryString = Uri.UnescapeDataString(Request.QueryString.Value);
                int index = queryString.IndexOf(returnUrl);
                string realReturnUrl = "";
                if (index > 0)
                {
                    realReturnUrl = queryString.Substring(index);
                }
                else
                {
                    realReturnUrl = queryString;
                }
                ViewData["ReturnUrl"] = realReturnUrl;
                //ViewData["ReturnUrl"] = returnUrl;
                return View();
            }
  • 相关阅读:
    申请Namecheap的.me 顶级域名以及申请ssl认证--github教育礼包之namecheap
    Floodlight+Mininet的SDN实验平台搭建初探
    在DigitalOcean vps中安装vnstat监控流量,浏览器打开php代码。。。
    知识积累
    vue路由跳转(新开页面 当前页面)
    手机访问电脑本地静态页面
    Vue:scoped与module的使用与利弊
    小技巧
    布局记录
    vue项目及vuex使用
  • 原文地址:https://www.cnblogs.com/maoyazhi/p/6474949.html
Copyright © 2020-2023  润新知