1、剃须刀模板razor的使用

1)混编

循环语法

@model List<MVCStudy.Models.Student>
@{
ViewBag.Title = "List";
} <h2>List</h2>
<!--循环遍历数组内容 c#与HTML混编-->
<ul> @foreach (var stu in Model)
{
<li>@stu.Name</li>
} </ul>
         public ActionResult List()
{
return View(new List<Student> {
new Student()
{
Id = ,
Name = "Micky",
Age =
},
new Student()
{
Id = ,
Name = "Jese",
Age =
},
new Student()
{
Id = ,
Name = "Nick",
Age =
}
}); ;
}

razor模板的核心是@

@符号在最上面:声明

@+大括号:c#代码,内部可以声明变量等等

@model List<MVCStudy.Models.Student>
@{
ViewBag.Title = "List";
int a = ;
} <h2>List</h2>
<!--循环遍历数组内容 c#与HTML混编-->
<ul> @foreach (var stu in Model)
{
@(a+22) //需要加括号才能进行表达式的处理
<li>@stu.Name</li>
} </ul>

如果就想输出一个@,怎么做?请写两个@进行转移

输出一段html:

@model List<MVCStudy.Models.Student>
@{
ViewBag.Title = "List";
int a = ;
string html = @"<p style='color:red;'>你好<p>";
} <h2>List</h2>
<!--循环遍历数组内容 c#与HTML混编-->
<ul>
@@
@foreach (var stu in Model)
{
@(a+)
<li>@stu.Name</li>
} </ul>
@Html.Raw(html)

@*注释内容*@

2、区域

1)项目右键-添加-添加已搭建基架的新项-MVC-MVC5区域-命名新建

添加后区域相当于一个单独的MVC

我们添加控制器与视图后可以访问到它,但是原首页的路由出现了多个,无法访问,进行如下修改

找到项目的路由配置RouteConfig.cs文件修改

             routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces:new string[]
{
"MVCStudy2.Controllers"
}
);

添加namespaces,一个字符串数组,里面的值是项目的命名空间

2)区域路由跳转

链接名称,路由名称(在区域的路由文件内查看,跳转参数)

@{
ViewBag.Title = "Home Page";
} <h1>项目首页</h1>
@Html.RouteLink("体育板块", "Sport_default", new { controller="Home",action="Index"})

3) 行为跳转

@{
ViewBag.Title = "Home Page";
} <h1>项目首页</h1>
@Html.RouteLink("体育板块", "Sport_default", new { controller="Home",action="Index"})
@Html.ActionLink("行为跳转","About",new {需传送参数},htmlAttributes:new {所需html属性})

如果要使用a标签进行行为跳转,需要进行跳转连接的确定(Url.Action)

@{
ViewBag.Title = "Home Page";
} <h1>项目首页</h1>
@Html.RouteLink("体育板块", "Sport_default", new { controller="Home",action="Index"})
@Html.ActionLink("行为跳转","About")
<a href="@Url.Action("About",new { from = "Index"})">跳转至About</a>

与上面类似,进行路由跳转也可以用a标签:

@{
ViewBag.Title = "Home Page";
} <h1>项目首页</h1>
@Html.RouteLink("体育板块", "Sport_default", new { controller="Home",action="Index"})
@Html.ActionLink("行为跳转","About")
<a href="@Url.Action("About",new { from = "Index"})">跳转至About</a>
<a href="@Url.RouteUrl("Admin_default", new { controller="Home",action="Index",param="u can also add param"})">跳转至Admin路由</a>

正式学习MVC 05的更多相关文章

  1. 正式学习MVC 01

    1.新建项目 点击创建新项目,选择ASP.NET web应用程序,对项目进行命名后点击创建. 截图如下: 取消勾选HTTPS配置 可选择空 + mvc 或直接选定MVC 2.目录结构分析 1) App ...

  2. 正式学习MVC 02

    1.cookie 继续讲解MVC的内置对象cookie 相对不安全 1)保存cookie public ActionResult Index() { // 设置cookie以及过期时间 Respons ...

  3. 正式学习MVC 06

    1.Model常用属性讲解 using System; using System.ComponentModel.DataAnnotations; namespace MVCStudy2.Models ...

  4. 正式学习MVC 04

    1.ActionResult ActionResult是一个父类, 子类包括了我们熟知的 ViewResult 返回相应的视图 ContentResult  返回字符串 RedirectResult( ...

  5. 正式学习MVC 03

    1.View -> Controller的数据通信 1) 通过url查询字符串 public ActionResult Index(string user) { return Content(u ...

  6. 白话学习MVC(十)View的呈现二

    本节将接着<白话学习MVC(九)View的呈现一>来继续对ViewResult的详细执行过程进行分析! 9.ViewResult ViewResult将视图页的内容响应给客户端! 由于Vi ...

  7. 学习MVC之租房网站(二)-框架搭建及准备工作

    在上一篇<学习MVC之租房网站(一)-项目概况>中,确定了UI+Service的“双层”架构,并据此建立了项目 接下来要编写Common类库.配置AdminWeb和FrontWeb 一.编 ...

  8. 白话学习MVC(八)Action的执行二

    一.概述 上篇博文<白话学习MVC(七)Action的执行一>介绍了ASP.NET MVC中Action的执行的简要流程,并且对TempData的运行机制进行了详细的分析,本篇来分析上一篇 ...

  9. 白话学习MVC(九)View的呈现一

    一.概述 本节来看一下ASP.NET MVC[View的呈现]的内容,View的呈现是在Action执行之后进行,Action的执行生成一个ActionResult,[View的呈现]的功能就是:通过 ...

随机推荐

  1. RHEL安装神器EPEL

    什么是EPEL? EPEL的全称叫 Extra Packages for Enterprise Linux .EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS.Scie ...

  2. 001.前端开发知识,前端基础HTML(2020-01-07)

    一.开发工具: chrome . sublime . photoshop 二.Web标准:不是某一个标准,而是由W3C和其他标准化组织制定的一系列标准的集合. 三.HTML的语言语法骨架格式 < ...

  3. Apsara Clouder专项技能认证:实现调用API接口

    一.API 简介 1.API 的概念 API(Application Programming Interface应用程序编程接口)是一些预定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访 ...

  4. 谈谈有关 Python 的GIL 和 互斥锁

    转载:https://blog.csdn.net/Amberdreams/article/details/81274217 有 Python 开发经验的人也许听说过这样一句话:Python 不能充分利 ...

  5. sqlserver命令创建数据库和表 demo

    由于sqlserver用起来很不爽 可以尝试用vscode+sqlserver插件玩玩 友情提示 在vscode中新建一个.sql 并配置好与sqlserver的连接 利用sql会有提示创建表 数据库 ...

  6. Java为什么能够跨平台?

    首先介绍一下Java的各个层级,先放一张图: 硬件,操作系统和操作系统接口:这三级不说大家都知道,操作系统有很多种,比如Windows,Linux.Windows又分为win7,win10,win x ...

  7. Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.FAILED

    1.service network stop 2./etc/sysconfig/network-scripts目录下,删除想要删除的网卡配置,我要删除eth1,所以rm -rf ifcfg-eth1, ...

  8. javascript常用知识汇总

    javascript这个语言庞大而复杂,我用了三年多了,还是皮毛都不会.从刚开始的jquery,到后来的es6,每天都在学习,每天都在忘记. 1.禁止手机虚拟键盘弹出 在开发适配手机的页面时,出现了这 ...

  9. hadoop datanode 启动正常,但master无法识别(50030不显示datanode节点)

    start-all.sh 启动 坑爹 找不出错 试了各种办法,重新formaet 查看 集群ID是否相同.都无效 日志也没看到错 按官网方法手动一步步启,问题照旧 master节点,yarn name ...

  10. CSA|EI

    信息检索 CSA是学科特色的包含相关学科的内容,其网址是https://search.proquest.com/ 可以使用命令行检索: 分类的限制检索: 寻找检索线索可使用百科全书 EI是工程领域最全 ...