.net mvc ActionResult基本用法

1 返回简单视图

首先新建一个.net mvc工程,找到默认的HomeController.cs中Index方法

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

在Views文件夹中会有跟方法同名的Index.cshtml文件,我们将默认的内容删除,修改为如下:

@{
    ViewBag.Title = "Home Page";
    Layout = "";
}

<h1>小白GIS</h1>

因为默认的Index.cshtml会有默认的母版页,也就是框架页,这里我们设置为不用母版页;效果如下

 return View()方法会默认去找跟方法名同名的视图;当然你也可以自建新建一个ActionResult的方法,然后在VIews文件夹中新建一个同名的cshtml文件,就不演示了;已经有工程自动生成的About.cshtml和Contact.chtml;

2 返回传值普通对象的视图

上面只是返回视图,这里,带上一个对象返回给视图,然后在视图中使用;

2.1 首先在Models文件夹下新建一个User类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebApplication3.Models
{
    public class User
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Sex { get; set; }
    }
}

2.2 HomeController.cs中引入Models模块,目的为了能使用里面的类

using WebApplication3.Models;

2.3 新建一个 ActionResult方法GetUser,如下

public ActionResult GetUser()
{

    User user = new User
    {
        Name = "小白GIS",
        Age = 5,
        Sex = "男"
    };
    return View(user);
}

2.4 在Views文件夹下新建GetUser.cshtml视图

或者可以直接右键上面的方法,添加视图;

@model WebApplication3.Models.User
@{
    Layout = null;
}

<div>
    @Model.Name<br />
    @Model.Agee<br />
    @Model.Sexe<br />
</div>

因为ActionResult返回的就是一个User对象,所以获取的时候在最顶部将User对象作为当前视图的全局Model对象,看就可以通过Model获取数据了;@model 后面跟的是的你User对象所在的工程路径,替换为自己的即可。声明时用model关键字,使用时用Model对象,他们不是一个东西

效果如下:

 3 返回传值List的视图

 3.1 新建ActioResult方法GetUserList

public ActionResult GetUserList()
{
    List<User> list = new List<User> {
        new User
        {
            Name = "小白GIS",
            Age = 5,
            Sex = "男"
        },
        new User
        {
            Name = "小白GIS 1",
            Age = 6,
            Sex = "女"
        },
        new User
        {
            Name = "小白GIS 2",
            Age = 6,
            Sex = "男"
        }
    };
    return View(list);
}
    

3.2 新建视图

@model List<WebApplication3.Models.User>
@{
    Layout = null;
}

<div>
    @foreach (var user in Model)
    {
        @user.Name<br />
        @user.Age<br />
        @user.Sex<br />
        <hr />
    }
</div>

然后启动IIS Express查看效果,记住如果只是修改视图,则右键预览即可,如果修改了Controller则需要重新启动IIS Express服务器

 这里我们将Model对象指向User List列表,所以可以用foreach遍历操作;

4 返回传值的分部视图(PartialView)

分部视图文件,一般放在Share文件夹,因为它作为一个页面的一部分,可以共享使用;接下来在Index首页中使用分部视图,并传值给分部视图

4.1 首先认识下分部视图如何使用

(1) 在Shared文件夹下新建一个视图文件CommonInfo.cshtml

<div style="color:purple;">
    我是分部视图,存储一些共享可被多次使用的信息
</div>

(2) 在需要渲染分部视图内容的地方引入@Html.Partial("CommonInfo.cshtml");

@{
    ViewBag.Title = "Home Page";
    Layout = "";
}

<h1>小白GIS</h1>
<hr />
<h1>下面的内容来自分部视图文件</h1>
@Html.Partial("~/Views/Shared/CommonInfo.cshtml");

效果如下:

 4.2 如何利用ActionResult返回分部视图并传值

 (1) 在Index.cshtml中要渲染分部视图的地方添加Html.RenderAction(),如下

@{
    ViewBag.Title = "Home Page";
    Layout = "";
}

<h1>小白GIS</h1>
<hr />
<h1>下面的内容来自分部视图文件</h1>
@*@Html.Partial("~/Views/Shared/CommonInfo.cshtml")*@
@{Html.RenderAction("GetCommonInfo")}

 GetCommonInfo是HomeController中的方法名;

(2) 添加方法GetCommonInfo

方法中返回一个PartialView,第一个参数是分部视图的名称,第二个参数是传过去的Model值

        public ActionResult GetCommonInfo() {
            User user = new User
            {
                Name = "公共用户",
                Age = 15,
                Sex = "男"
            };
            return PartialView("CommonInfo", user);
        }

 CommonInfo.cshtml

@model WebApplication3.Models.User
@{
    Layout = null;
}

<div>
    <div style="color:purple;">
        我是分部视图,存储一些共享可被多次使用的信息<br />
        @Model.Name<br />
        @Model.Age<br />
        @Model.Sex<br />
    </div>
</div>

 如上可以将值传到分部视图

 所以渲染分部视图最常见的如上两种方式,一种直接渲染视图,另一种通过控制器方法跳转到视图,中间可以传值过去;更加高级一点

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: ASP.NET MVC 5是一种基于MVC设计模式的Web应用程序框架,它能够帮助开发人员快速地构建高性能、可扩展、易于维护的Web应用程序。ASP.NET MVC 5的源代码是开放的,可以供开发人员学习和使用。 ASP.NET MVC 5的源代码包括了许多组件,如控制器、视图、路由、模型绑定、过滤器等,每个组件为开发人员提供了丰富的功能和灵活的扩展性。例如,控制器是ASP.NET MVC 5应用程序的核心组件之一,它包含了Action(处理客户端请求的方法)和ActionResult(请求的结果)等。视图是另一个重要的组件,它负责呈现数据并与用户交互。路由是整个应用的核心,负责将请求路由到对应的控制器和Action。 ASP.NET MVC 5的源代码还包含了许多其他的实用工具和库,如ASP.NET Identity(用户认证和授权)、Microsoft.AspNet.Web.Optimization(前端资源优化)、Web API(RESTful服务)等,这些工具和库能够帮助开发人员构建更加丰富和复杂的Web应用程序。 总之,ASP.NET MVC 5的源码是开放的,它提供了丰富的组件、实用的工具和库,可以帮助开发人员快速构建高性能、可扩展和易于维护的Web应用程序。开发人员可以通过学习源代码来了解框架的内部实现和功能特性,并逐步提升自己的开发技能。 ### 回答2: ASP.NET MVC 5是一种使用MVC模式(Mode-View-Controller)的Web应用程序框架。它是基于.NET Framework的,可以用于创建高性能、可扩展、安全的Web应用程序。 以下是ASP.NET MVC 5框架的主要源码揭秘: 1. Routing:路由是ASP.NET MVC应用程序中的一个重要概念。它用于将URL映射到特定的控制器和操作方法。MVC 5框架中的路由引擎根据请求的URL和路由模板来确定请求应该由哪个控制器和操作方法处理。 2. Controller:控制器是MVC模式中的一个组成部分,它负责处理用户请求并生成响应。在MVC 5框架中,控制器有许多基础类和接口,如Controller类、IController接口等。 3. View:视图是控制器生成响应的一部分,它将模型数据呈现为HTML页面。在MVC 5框架中,使用各种视图引擎来呈现视图,如Razor视图引擎、ASPX视图引擎等。 4. Model:模型是MVC模式中的最后一个组成部分,它在控制器和视图之间传递数据。在MVC 5框架中,使用各种模型绑定器来将请求数据绑定到模型。 5. Bundling and Minification:Bundling和Minification是ASP.NET MVC中常用的技术,用于减少页面加载时间和资源使用。在MVC 5框架中,通过使用System.Web.Optimization命名空间中的类来添加和管理JS、CSS和其他资源的捆绑和缩小。 总之,ASP.NET MVC 5是一种功能强大的Web应用程序框架,它实现了MVC模式并提供了许多特性和工具来帮助开发人员构建高性能、可扩展、安全的Web应用程序。通过深入了解和分析MVC 5框架的源代码,开发人员可以更好地理解其内部工作原理,从而更有效地使用和扩展它。 ### 回答3: ASP.NET MVC 5是一种用于构建Web应用的框架,它使用模型-视图-控制器(MVC)的设计模式。本文将介绍ASP.NET MVC 5的源代码。 ASP.NET MVC 5的源代码主要分为几个部分:框架核心、路由、控制器、视图和模型。 框架核心是ASP.NET MVC 5的核心部分,提供了MVC框架的基本功能。其中包括建立请求管道、控制器工厂和视图引擎等关键组件。框架核心的代码是相当庞大的,包含了许多类、接口和扩展方法。在了解整个框架的实现细节时,框架核心是一个重要的起点。 路由是控制请求流程的重要组成部分。ASP.NET MVC 5使用的是基于URL的路由,它将请求URL映射到相应的控制器和操作上。路由的源代码中,关键部分是路由表的维护和查询机制。在了解路由的实现细节时,了解路由表的数据结构和查询算法是必不可少的。 控制器是MVC框架中的核心组件,它负责处理请求并返回响应。控制器的实现代码通常非常简单,主要是一些Action方法的定义和调用。控制器的源代码中,需要关注的是Action的参数绑定、Model验证和ActionResult的实现细节等。 视图是MVC框架中的UI组件,它通过生成HTML代码来渲染页面。视图的源代码中,关键部分是视图引擎的实现,它根据视图的文件名和模板来生成HTML代码。在了解视图的实现细节时,视图引擎是一个重要的组成部分。 模型是应用程序中的数据模型,通常与数据库中的数据结构相关。模型的源代码中,重点是数据访问层和实体类型的定义。在了解数据模型的实现细节时,了解数据访问层的实现和实体类型的定义是必要的。 总之,ASP.NET MVC 5的源代码非常庞大,也非常复杂。要彻底掌握它,需要对框架的核心、路由、控制器、视图和模型等组成部分进行深入研究。同时,我们也需要了解C#编程语言和.NET平台的底层机制。只有这样,才能真正揭秘ASP.NET MVC 5的源代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨大大28

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值