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();
}

MVC项目总结的更多相关文章

  1. 采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)

    前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC Mi ...

  2. MVC项目中ExecutionTimeout不生效的解决方案

    我们做web服务器端开发时,经常会遇到一个需求场景,因为某些耗时处理造成页面的响应处理时间超长,技术角度就想能否给页面处理程序一个指定的超时时间,服务端处理程序执行时间超过这个指定的超时时间则中断处理 ...

  3. ASP.NET MVC项目实践技巧

    原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com 在.NET开发初期,微软提供的WEB开发模型是WebForm,试图消除Web和桌面的隔阂,建立一致的开发体验.但是 ...

  4. AngularJS2 + ASP.NET MVC项目

    环境:VS2015, NodeJS:v 6.5, npm: v3.10, AngularJs 2 通过将ASP.NET MVC项目与Angualr 2官网上的quick start整合的过程中遇到些问 ...

  5. IntelliJ IDEA上创建maven Spring MVC项目

    IntelliJ IDEA上创建Maven Spring MVC项目 各软件版本 利用maven骨架建立一个webapp 建立相应的目录 配置Maven和SpringMVC 配置Maven的pom.x ...

  6. 远程调试 ASP.NET MVC 项目

    Visual Studio 支持从一台计算机到另一台设备的远程调试.进行远程调试时,主机可以是任何支持 Visual Studio 的平台.远程设备可以是 x86.x64 或 ARM 平台. 本文将指 ...

  7. Visual Studio 2015 新建MVC项目 Package Manager Console不能使用 (HRESULT: 0x80131500)

    Visual studio 2015 突然新建不了MVC项目,报出错误: HRESULT: 0x80131500 在折腾了很长时间,最后在Github上看到这样一个贴 地址:https://githu ...

  8. mvc项目controller重命名了,用原网页url访问不了了,怎么办?

    如题.MVC项目,手机网站. 公司的官方微信上,用户关注之后,点击相应菜单就可以使用相关的功能. 最近项目重构,有些不规范的命名方式给予了重构.上线后,微信上发现一些网页访问不了了. 联系微信的维护人 ...

  9. 本地MVC项目发布到IIS服务器

    0瞎扯 朋友们有时候我们写个一个web程序只能使用卡西尼服务器调试,下面我教大家发布到IIS服务器上(包括本地ISS7.5和远程服务器 IIS) 1.VS发布 a.点击web项目->发布

  10. 基于MVC4+EasyUI的Web开发框架经验总结(15)--在MVC项目中使用RDLC报表

    RDLC是一个不错的报表,有着比较不错的设计模式和展现效果,在我的Winform开发里面,使用RDLC也是一个比较方便操作,如可以参考文章<DevExpress的XtraReport和微软RDL ...

随机推荐

  1. hdu 3535 背包综合题

    /* 有n组背包,每组都有限制 0.至少选一项 1.最多选一项 2.任意选 */ #include <iostream> #include <cstdio> #include ...

  2. why switch kernel mode and user mode expensive

    Because that means context switching(save context, restore context)

  3. input输入框与元素间有间隙

    <div class="container"> <button>1</button> <button>2</button> ...

  4. css3 实现多行文本折行

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. linux内核情景分析之内核中的互斥操作

    信号量机制: struct sempahore是其结构,定义如下 struct semaphore { atomic_t count;//资源数目 int sleepers;//等待进程数目 wait ...

  6. Color.FromArgb()方法详解

    关于颜色值的表示 常用的颜色值表示方式有两种,一种是10进制的RGB值表示,如(0,113,255),三个值分别表示(红,绿,蓝):一种是16进制的颜色码表示,如#ff3212.这两种形式在编程中都可 ...

  7. LeetCode OJ-- Balanced Binary Tree ***

    https://oj.leetcode.com/problems/balanced-binary-tree/ 判断一个二叉树,是否为平衡的.如果是平衡的,则它的每个子树的左右子树高度差不大于1. 递归 ...

  8. 2014年国内最热门的.NET开源平台

    http://developer.51cto.com/art/201501/464292.htm

  9. 将linlayout布局转为bitmap图片和保存

    1.首先新建路径 File filedirs = new File(Environment.getExternalStorageDirectory(), "/YuLin/"); i ...

  10. Andriod Atom x86模拟器启动报错

    用Inter Atom模式的Android模拟器启动报一下错误: Starting emulator for AVD 'new' emulator: ERROR: x86 emulation curr ...