ASP.NET Core MVC 中自定义视图
ASP.NET Core MVC 中的视图发现
ASP.NET Core MVC 中有提供了几个 View()的重载方法。 如果我们使用下面提供 View()的重载方法,它将查找与 Action 方法同名的视图文件。
- View()
- View(object model)
例如,我们从HomeController的Details的 Action 方法返回一个 View()。因此,默认情况下,MVC 在“Views / Home”文件夹中查找名为 Details.cshtml 的视图文件。
public class HomeController : Controller
{
public ViewResult Details()
{
return View();
}
}
View(string viewName) 方法
如果您不喜欢此默认约定,则可以使用View(string viewName)方法的重载版本,该方法将 viewName作为参数,以查找具有您自己的自定义名称的视图文件。
在以下示例中,MVC 查找名为 **“Test.cshtml”而不是“Details.cshtml”**的视图文件。如果我们没有指定视图名称,它会查找 “Details.cshtml”。
public class HomeController : Controller
{
public ViewResult Details()
{
return View("Test");
}
}
指定视图文件路径
使用此重载方法,我们可以指定视图名称或视图文件路径。在以下示例中,我们指定了视图文件的绝对路径。因此,在这种情况下,MVC 在“MyViews”文件夹中查找名为“Test.cshtml”的视图文件。如果我们没有指定视图文件的路径,默认情况下,MVC 会在“Views / Home”文件夹中查找“Details.cshtml”文件。使用绝对路径时,必须加上.cshtml 扩展名。
public class HomeController : Controller
{
public ViewResult Details()
{
return View("MyViews/Test.cshtml");
}
}
请注意:使用绝对路径,会项目的根目录开始搜索,我们可以使用**/或〜/**。所以下面 3 行代码做的事情是一样的:
return View("MyViews/Test.cshtml");
return View("/MyViews/Test.cshtml");
return View("~/MyViews/Test.cshtml");
相对视图文件路径
指定视图文件路径时,我们也可以使用相对路径。使用相对路径,我们不指定文件扩展名 .cshtml。在以下示例中,MVC 在“Views / Test”文件夹中查找 Update.cshtml 文件。
public class HomeController : Controller
{
public ViewResult Details()
{
return View("../Test/Update");
}
}
如果你要的返回值在文件夹层次结构中超过了 2 个深度,请使用../两次,如下所示。在下面的例子中,MVC 查找“Details.cshtml”在“MyViews”文件夹中的根目录
public class HomeController : Controller
{
public ViewResult Details()
{
return View("../../MyViews/Details");
}
}
其他 view()重载方法
| 重载方法 | 描述 |
|---|---|
| View(object model) | 使用此重载方法将模型数据从控制器传递到视图。我们将在下一个视频中讨论从控制器传递数据到视图 |
| View(string viewName, object model) | 传递视图名称和模型数据。 |
下一节:将数据从 Controller 传递到 ASP.NET Core MVC 中的 View
欢迎添加个人微信号:Like若所思。
欢迎关注我的公众号,不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!一起学习共同进步!

ASP.NET Core MVC 中自定义视图的更多相关文章
- 007.Adding a view to an ASP.NET Core MVC app -- 【在asp.net core mvc中添加视图】
Adding a view to an ASP.NET Core MVC app 在asp.net core mvc中添加视图 2017-3-4 7 分钟阅读时长 本文内容 1.Changing vi ...
- asp.net core mvc中自定义ActionResult
在GitHub上有个项目,本来是作为自己研究学习.net core的Demo,没想到很多同学在看,还给了很多星,所以觉得应该升成3.0,整理一下,写成博分享给学习.net core的同学们. 项目名称 ...
- 数据呈现到 ASP.NET Core MVC 中展示
终于要将数据呈现到 ASP.NET Core MVC 中的 视图 上了 将数据从控制器传递到视图的三种方法 在 ASP.NET Core MVC 中,有 3 种方法可以将数据从控制器传递到视图: 使用 ...
- ASP.NET Core MVC 中的 [Controller] 和 [NonController]
前言 我们知道,在 MVC 应用程序中,有一部分约定的内容.其中关于 Controller 的约定是这样的. 每个 Controller 类的名字以 Controller 结尾,并且放置在 Contr ...
- 006.Adding a controller to a ASP.NET Core MVC app with Visual Studio -- 【在asp.net core mvc 中添加一个控制器】
Adding a controller to a ASP.NET Core MVC app with Visual Studio 在asp.net core mvc 中添加一个控制器 2017-2-2 ...
- 008.Adding a model to an ASP.NET Core MVC app --【在 asp.net core mvc 中添加一个model (模型)】
Adding a model to an ASP.NET Core MVC app在 asp.net core mvc 中添加一个model (模型)2017-3-30 8 分钟阅读时长 本文内容1. ...
- ASP.NET MVC和ASP.NET Core MVC中获取当前URL/Controller/Action (转载)
ASP.NET MVC 一.获取URL(ASP.NET通用): [1]获取完整url(协议名+域名+虚拟目录名+文件名+参数) string url=Request.Url.ToString(); [ ...
- ASP.NET Core MVC中Controller的Action,默认既支持HttpGet,又支持HttpPost
我们知道ASP.NET Core MVC中Controller的Action上可以声明HttpGet和HttpPost特性标签,来限制可以访问Action的Http请求类型(GET.POST等). 那 ...
- ASP.NET Core MVC中的IActionFilter.OnActionExecuted方法执行时,Controller中Action返回的对象是否已经输出到Http Response中
我们在ASP.NET Core MVC项目中有如下HomeController: using Microsoft.AspNetCore.Mvc; namespace AspNetCoreActionF ...
随机推荐
- java优化细节记录
此处是为了记录一些优化细节,从网上收集而来,仅供后续代码开发参考使用,如发现更好的,会不断完善 首先确认代码优化的目标是: 减小代码的体积 提高代码运行的效率 代码优化细节 1.尽量指定类.方法的fi ...
- 十、自定义ThreadPoolExecutor线程池
自定义ThreadPoolExecutor线程池 自定义线程池需要遵循的规则 [1]线程池大小的设置 1.计算密集型: 顾名思义就是应用需要非常多的CPU计算资源,在多核CPU时代,我们要让每一个CP ...
- IDEA 日常小技巧
原文首发于 studyidea.cn点击查看更多技巧 适用于 IDEA 2019.2 之前版本 ,2019.2 版本以下功能默认开启. Surround a selection with a quot ...
- 【mybatis】mybatis传参的几种方式
参考地址: https://my.oschina.net/liuzelin/blog/2966633
- Docker入门学习及其安装
1.Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源.Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux机器 ...
- winfrom 获取焦点控件
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Win ...
- 使用三层架构+EF添加单元测试
在运行测试的时候抛异常了: “System.InvalidOperationException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理 The Entity Fram ...
- Oracle - 数字处理 - 取上取整、向下取整、保留N位小数、四舍五入、数字格式化
用oracle sql对数字进行操作: 取上取整.向下取整.保留N位小数.四舍五入.数字格式化 取整(向下取整): select floor(5.534) from dual; select trun ...
- 编辑修改json文件(PSCustomObject)
#$uname:用户 #$mails:需要绑定或删除的邮箱,如有多个邮箱,中间以,为分隔符,无需添加引号 #######################脚本开始#################### ...
- 算法笔记 第6章 C++标准模版库(STL)介绍 学习笔记
6.1 vector的常见用法详解 vector:变长数组,长度根据需要而自动改变的数组 要使用vector,则需要添加vector头文件,即#include<vector>,还需要在头文 ...