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; 

posted @ 2016-11-26 15:57  白洋花海  阅读(234)  评论(0编辑  收藏  举报