返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >ASP.NETMVC视图寻址
  • 160
分享到

ASP.NETMVC视图寻址

2024-04-02 19:04:59 160人浏览 泡泡鱼
摘要

一、为什么要使用视图 使用视图以后有两个优点: 1、保证页面内容输出和控制器代码的分离。和Code Behind不同,CodeBehind实现的是物理分离,视图可以实现逻辑上的分离。

一、为什么要使用视图

使用视图以后有两个优点:

1、保证页面内容输出和控制器代码的分离。和Code Behind不同,CodeBehind实现的是物理分离,视图可以实现逻辑上的分离。

2、更方便、更直观的输出页面内容的方式。页面上面的逻辑可以很方便的借助Razor语法和html混合的方式完成,不像以前的WEBFrom需要后端把所有的HTML整合好在进行输出,这样后台和前端想结合起来很困难。

二、视图的寻址

1、视图寻址方法1

当使用View方法返回视图的时候,是怎么知道要执行哪个视图页面呢?通常的做法就是通过视图的方法传递视图的完整路径,或者指定视图的名称,指定视图路径很好理解!如下面的代码所示:

public ActionResult Index()
{
      return View();
}

默认情况下,启动的时候会打开Index视图,将代码修改如下:

public ActionResult Index()
{
      // 指定视图的路径
      return View("~/Views/Home/About.cshtml");
}

运行结果:

从运行结果中可以看出,如果指定了视图的路径,那么运行的时候打开的就会是指定路径的视图。

那么指定视图名称(默认代码就是使用的指定视图名称的方法)的时候是如何知道视图放在什么地方呢?难道要遍历整个网站的路径吗?当然不会是这样的,如下图所示,它有一个寻址范围的。

指定视图名称寻找视图的步骤:

1、首先查找相应的Controller名称对应的视图文件夹,如果找不到,在查找Shared文件夹。

2、先查找cshtml文件。

3、这是一种约定的规则。

2、视图寻址方法2

三、编写视图

前面已经接触了视图的编写,从原理上讲asp.net针对请求的处理最终体现在对目标Action方法的执行,并就处理的结果对请求予以响应,而ActionResult为我们提供了一种响应请求的快捷方式。ASP.net mvc定义了一系列原生的ActionResult类型,如:EmptyResult、ContentResult等,它们或者帮助我们将指定的内容按照相应的媒体类型响应给客户端,或者回复一个指定状态码的响应,又或者是实现客户端的重定向。

ViewResult是重要也是最为常用的ActionResult,我们可以利用它将指定的View呈现在客户端的浏览器上。针对ViewResult的View呈现最终是利用View引擎来实现的。View引擎中的View实现了IView接口,对应着某个View文件,而核心组件ViewEngine实现针对View的获取、激活、呈现以及最终的释放。

View文件最终编译生成的WebViewPage<TModel>是System.Web.Mvc.WebViewPage的子类,而后者继承自WebPageBase。我们在定义View的时侯使用的三个帮助对象(HtmlHelper、UrlHelper和ajaxHelper)所对应的属性就定义在这里,他们通过InitHelpers方法进行初始化。

我们在定义View的时侯可以通过只读属性Model、ViewData、ViewBag和TempData得到在Controller中设置的状态数据,也可以通过调用SetViewData设置ViewData,ViewContext表示View当前上下文。如下图所示:

四、HTML辅助方法

下图中列出了一些常见的HTML辅助方法:

 到此这篇关于ASP.NET MVC视图寻址的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: ASP.NETMVC视图寻址

本文链接: https://lsjlt.com/news/141745.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ASP.NETMVC视图寻址
    一、为什么要使用视图 使用视图以后有两个优点: 1、保证页面内容输出和控制器代码的分离。和Code Behind不同,CodeBehind实现的是物理分离,视图可以实现逻辑上的分离。...
    99+
    2024-04-02
  • ASP.NET MVC如何实现视图寻址
    这篇文章将为大家详细讲解有关ASP.NET MVC如何实现视图寻址,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、为什么要使用视图使用视图以后有两个优点:保证页面内容输出和控制器代码的分离。和...
    99+
    2023-06-29
  • ASP.NETMVC使用母版页视图
    一、母版页介绍和使用 母版页的扩展名为".cshtml",也叫做视图布局页,它相当于网页的模板。在其他网页中,只要引用了母版页,母版页的页面内容就可以自动显示出来...
    99+
    2024-04-02
  • 一文理解Go 中的可寻址和不可寻址
    目录1. 什么叫可寻址?2. 哪些是可以寻址的?变量:&x指针:&*x数组元素索引: &a[0]切片切片元素索引:&s[1]组合字面量...
    99+
    2024-04-02
  • 第3章   IP寻址
    第3章   IP寻址 TCP/IP协议栈有四层:应用层、传输层、网际层、网络接口层。 TCP数据段的组件              Source port   ...
    99+
    2023-01-31
    IP
  • ASP.NETMVC中Controller控制器向View视图传值的几种方式
    一、准备工作 创建一个ASP.NET MVC程序,然后在Models文件夹里面新添加Student实体类,用来模拟从Controller向View传递数据,Student类定义如下:...
    99+
    2024-04-02
  • golang无法寻址对象
    golang是一个简单、高效的编程语言,尤其在并发编程方面表现出色,但在使用golang编程时,可能会遇到一些困难和问题。其中一个常见问题是“golang无法寻址对象”。在golang中,如果一个对象被分配在堆栈上,那么无法直接获取该对象的...
    99+
    2023-05-15
  • Linux内存寻址是什么
    本篇内容介绍了“Linux内存寻址是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!早期的程序都是直接运行在物理地址上,也就是说这个程序所...
    99+
    2023-06-27
  • ASP.NETMVC视图页使用jQuery传递异步数据的几种方式详解
    在ASP.NET MVC的视图页向控制器传递异步数据,可能是数组,JavaScript对象,json,表单数据,等等。 关于数据,JavaScript对象有时候和json长得一模一样...
    99+
    2024-04-02
  • MVC路由自定义及视图找寻规则的示例分析
    这篇文章将为大家详细讲解有关MVC路由自定义及视图找寻规则的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。MVC路由自定义相信对于MVC路由的配置大家也都了解过一些,其实,这也不是本章的重点。创建...
    99+
    2023-06-17
  • Linux的内存寻址方式是什么
    这篇文章主要讲解了“Linux的内存寻址方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux的内存寻址方式是什么”吧!为什么要内存管理:早期的程序都是直接运行在物理地址上,也就...
    99+
    2023-06-15
  • Oracle v$session视图显示客户端IP地址
    在Oracle数据库中,我们使用session相关视图(v$session、v$active_session_history,dba_hist_active_session_history等)查找问题时,往往可以定位到相应的主机名...
    99+
    2018-03-02
    Oracle v$session视图显示客户端IP地址
  • ASP.NETMVC解决上传图片脏数据的方法
    在"在ASP.NET MVC下实现单个图片上传, 客户端服务端双重限制图片大小和格式, 服务端裁剪图片"中,已经实现了在客户端和服务端限制图片大小和格式,以及在服...
    99+
    2024-04-02
  • Linux内存管理和寻址详细介绍
    目录1.概念内存管理模式地址类型划分说明:2.页式管理x86架构32位cpux86架构 64位cpu3.地址划分4. 调试程序寄存器示例一个内核宕机的日志:查看程序寄存器段寄存器有0x23和0x2b两...
    99+
    2022-06-04
    Linux内存管理 linux内存寻址
  • 探讨Go语言中不可寻址的值
    在Go语言中,有一些值是不可寻址的,即无法取得它们的内存地址。这些值包括常量、字面量和不能被取地址的表达式。在本文中,我们将探讨这些不可寻址的值,并通过具体的代码示例来理解它们的特性。...
    99+
    2024-04-02
  • 解析Go语言中无法寻址的值
    Go语言中的指针是一种非常强大的特性,允许程序员直接访问和操作内存中的地址。但是,在Go语言中也存在一些无法寻址的值,即不能获取其内存地址的变量。本文将针对这些无法寻址的值进行深入探讨...
    99+
    2024-04-02
  • Go语言中的不可寻址数值探究
    Go语言中的不可寻址数值探究 在Go语言中,存在着一些不可寻址的数值类型,即无法获取其地址的值。这些不可寻址的值在编程过程中可能会导致一些困惑和错误,因此有必要对其进行深入探究并了解其...
    99+
    2024-04-02
  • 透视Golang:探寻它的独特开发之道
    随着互联网技术的不断发展,Golang作为一种快速、静态类型、并发安全的编程语言,越来越受到开发者的关注和喜爱。Golang的设计目标是解决大型项目开发中的一些常见问题,如并发控制、内...
    99+
    2024-03-06
    开发 golang 探秘
  • Linux内存管理和寻址的概念是什么
    本篇内容主要讲解“Linux内存管理和寻址的概念是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux内存管理和寻址的概念是什么”吧!1.概念内存管理模式段式:内存分为了多段,每段都是连...
    99+
    2023-06-21
  • Android listview多视图嵌套多视图
    首先给大家展示下效果图: public class HomeEduMoreAdapter extends BaseAdapter { private final Strin...
    99+
    2022-06-06
    视图 listview 嵌套 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作