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();
        }
时间: 2024-08-15 14:45:30

MVC项目总结的相关文章

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

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC MiniProfiler是Stack Overf

AngularJS2 + ASP.NET MVC项目

环境:VS2015, NodeJS:v 6.5, npm: v3.10, AngularJs 2 通过将ASP.NET MVC项目与Angualr 2官网上的quick start整合的过程中遇到些问题. 通过下面的若干配置最终向项目build成功.

maven Spring MVC项目

IntelliJ IDEA上创建maven Spring MVC项目 各软件版本 利用maven骨架建立一个webapp 建立相应的目录 配置Maven和SpringMVC 配置Maven的pom.xml 配置web.xml 配置contextConfigLocation文件 配置log4j.properties controller和view的编写 servlet容器的配置和运行 配置本地的tomcat服务器 配置maven插件 运行第一个Spring MVC应用 目前java开发主流的IDE

MVC项目,系统找不到指定的文件。(异常来自 HRESULT:0x80070002)

今天在用Visual Studio新建MVC项目的时候,遇到错误 系统找不到指定的文件.(异常来自 HRESULT:0x80070002) 解决办法:工具--> 扩展和更新 -->联机(Visual Studio库)--> NuGet Packget Manager for Visual Studio 2013 , 下载安装后 , 重启VS,OK (NuGet Packget, 还没有好好研究,总体说是方便开发,管理和更新第三方引用)

第12章 MVC项目综述

一段废话:看懂.把代码敲一遍是不能把知识真正的学会的,学会一个知识:1.总结知识特性,2.举一反三运用 ---------------------------------------------------------- 注:在部署服务器时,应将配置文件中<compilation debug="false" targetframwork="4.0"> .debug必须为"false" -------------------------

ASP.NET MVC项目实践技巧

原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com 在.NET开发初期,微软提供的WEB开发模型是WebForm,试图消除Web和桌面的隔阂,建立一致的开发体验.但是,理想很丰满,现实很骨感,Web的开发方式和桌面软件是完全不一样的.相比WebForm,后出道的MVC显然切合了Web开发者的需求,代码质量明显提升,性能也优化了不少. 在做MVC项目时,我个人有一些习惯: 1. 将Request和Response中经常使用的方法封装为扩展方法,比如获取登录User

Java Spring MVC项目搭建(一)——Spring MVC框架集成

1.Java JDK及Tomcat安装 我这里安装的是JDK 1.8 及 Tomcat 8,安装步骤详见:http://www.cnblogs.com/eczhou/p/6285248.html 2.下载Eclipse并安装 我这里安装的是Java EE neon 64位版本. 3.建立Spring MVC项目 3.1.打开安装好的eclipse ,选择File->new->other.在弹出的框内选择Web->Dynamic Web Project , 选择Next. 3.2.给项目起

新建了个MVC项目,研究一下

今晚陪老婆去参加她公司的理财洗脑会.世上的事最怕坚持,只要能坚持下来,利滚利到最后增长会高的吓人. 回来都很晚了,新建了个MVC项目,一开始都没找到MVC在哪...装的是VS2015,后来搜了下,原来就是Web应用程序,然后再选MVC. 项目生成时自带了一些实用的插件,有jquery(及认证).BootStrap.Newtonsoft.Json 大概看了看,和视频教程对上号,今天先这样吧,比较晚了

MVC项目实践,在三层架构下实现SportsStore-02,DbSession层、BLL层

SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管理.图像上传......是不错的MVC实践项目,但该项目不是放在多层框架下开发的,离真实项目还有一段距离.本系列将尝试在多层框架下实现SportsStore项目,并用自己的方式实现一些功能. 本篇为系列第二篇,包括: ■ 4.三层架构设计    □ 4.2 创建DbSession层 数据访问层的统一入口   

iOS开发基于MVC项目上重构举例

上一次我们讨论了iOS重构在MVC项目上的可行性,今天具体来讲基于MVC的项目重构步骤以及重构后的结构. 思考要解决的问题 回到项目重构的问题上来,我认为项目重构首先要想清楚的问题: 项目层级如何划分? 大的业务场景有哪些? 将UIViewController归类为View还是Controller? 谁来负责网络请求,Model还是Controller? 从Model中取得数据后Controller怎么把数据传递给View去展示?按照View层级逐级传递?是否需要使用ViewModel? Mod