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. swank: (too proud or confident) 炫耀;卖弄 to behave in way that is too proud or confident

    from : https://www.bing.com/dict/search?q=swank&qs=n&form=Z9LH5&sp=-1&pq=swank&s ...

  2. 手机APP例如抖音,让 people‘s 注意力集中到了 社会进化的 优胜部分 (优胜劣汰,什么是优) + 真善美,的 “美” , 促进了2极分化, 会产生强者俞强,弱者越弱,确实促进了信息的流通,传播了有用的东东 产生了独特的价值 而 如何 能计算出这些价值呢, 需要 数学 金融 财务 货币 量化吗

    手机APP例如抖音,让      people‘s  注意力集中到了  社会进化的 优胜部分  (优胜劣汰,什么是优)   +     真善美,的  “美”        , 促进了2极分化, 会产生 ...

  3. 字典 -> model

    1.使用KVC init(dict : [String : Any]) { super.init() setValuesForKeys(dict) } override func setValue(_ ...

  4. 如何将jar包打包到本地maven仓库

    --例如下载jar到本地(例如经常用到的oracle数据库驱动) --前提本地已将安装maven并配置好环境,cmd并切换到jar包的文件夹下,执行以下命令,注意DgroupId.DartifactI ...

  5. 替换String中的\r\n\t

    String json = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n " ...

  6. facebook第三方登陆(使用sharedSDK)无法加载网址:这个URL的域名未包含应用的域名

    http://bbs.mob.com/forum.php?mod=viewthread&tid=8134&extra=page%3D1

  7. python之time模块和hashlib模块

    一.time模块 import time print(time.strftime('%Y-%m-%d %H:%M:%S'))#获取当前的格式化时间,time.strftime(format) prin ...

  8. EXAM-2018-8-9

    EXAM-2018-8-9 B 水题 注意理解题意 有坑 G 博弈 观察发现 总是会进行到最后两个,或者先手取完全部,再特判一下只有一张牌的情况 H 九连环 通过找规律 我们可以得出递推式: F[n] ...

  9. eclipse批量替换,修改变量名或单词(两种方法)

    第一种(常用): ①如图:双击选中变量名id,右键选择Refactor中的Rename ②之后如下图所示,红箭头的带有方框的就是选中修改的变量名,此时修改提示框的内容,后面带方框的也跟着修改, 而蓝色 ...

  10. windows下的tfjs-node安装异常总结

    大约有半年没有写博客了,奔波于上海这座魔都之中.险些忘了自己是个有梦想的全栈工程师 书接上回,由于个人非常厌恶python的语法,半年前发现了tensorflow.js这个宝贝(下简称tfjs),喜出 ...