博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET MVC 5 学习教程:控制器传递数据给视图
阅读量:6830 次
发布时间:2019-06-26

本文共 2073 字,大约阅读时间需要 6 分钟。

ASP.NET MVC 5 学习教程目录:

在讨论数据库和模型之前,让我们先说说容控制器传递数据给视图。控制器类在响应传入的请求时被调用,控制器类是你写代码处理浏览器请求、从数据库中检索数据、并最终决定发送什么类型的响应给浏览器。视图模板被控制器用来生成和格式化HTML响应给浏览器。

控制器的责任是为视图模板提供必须的数据或对象,用来绘制HTML响应浏览器。一个最佳实践是:视图模板从来不参与业务逻辑,或直接与数据库交互。相反的,视图模板仅与控制器提供的数据一起工作。保持这种“关注点分离(separation of concerns)”有助于保持代码的整洁,可测试性和更容易维护。

目前,HelloWorldController 类中的 Welcome 方法需要两个参数:namenumTimes,然后直接与将值输出给浏览器。让我们修改控制器,使用视图来替换直接相应string字符串。视图模板会生成一个动态响应,这意味着你需要通过控制器传递一些数据用来生成响应。要做到这些,你需要通过在控制器中将数据(参数)放到ViewBag对象中,视图可以访问ViewBag对象。

回到 HelloWorldController.cs 文件中,修改Welcome方法,在ViewBag对象中添加一个Message和NumTimes值。ViewBag是dynamic 类型的对象,你可以为它添加任何你想要的数据,ViewBag对象在你添加数据之前,不具有任何属性。ASP.NET MVC 模型绑定系统从地址参数中自动映射命名的参数(namenumTimes)到方法中。完整的HelloWorldController.cs文件如下:

代码清单1:HelloWorldController.cs文件

using System.Web;using System.Web.Mvc;namespace MvcMovie.Controllers{    public class HelloWorldController : Controller    {        public ActionResult Index()        {            return View();        }        public ActionResult Welcome(string name, int numTimes = 1)        {            ViewBag.Message = "Hello " + name;            ViewBag.NumTimes = numTimes;            return View();        }    }}

现在ViewBag对象已经包含了数据,它会被自动传递给视图。

接下来,你需要一个Welcome视图模板。在生成菜单中,选择生成解决方案(或使用快捷键 CTRL+SHIFT+B)确定项目已经编译了。

Views\HelloWorld 文件夹右键,选择“添加”>“支架”:

图1:添加视图菜单

在添加支架对话框中,选择“MVC 5 View - Empty without model”。

图2:添加支架对话框

在Add View对话框中,将视图命名为Welcome

图3:Add View对话框

文件MvcMovie\Views\HelloWorld\Welcome.cshtml 已经创建好了。

在文件Welcome.cshtml<h2>元素下添加如下的代码,完整的代码如下:

@{    ViewBag.Title = "Welcome";}

Welcome

    @for (int i = 0; i < ViewBag.NumTimes; i++) {
  • @ViewBag.Message
  • }

运行应用程序,在浏览器中查看如下地址:

http://localhost:xx/HelloWorld/Welcome?name=Scott&numtimes=4

现在数据从URL取出来,通过模型绑定传递给控制器,控制器将数据封装在ViewBag对象中,传递给视图,然后视图将数据以HTML的方式呈现给用户。

图4:Welcome视图

在上面的例子中,我们使用ViewBag对象将数据从控制器传递给视图。在家下来的章节中,我们会使用视图模型来传递数据。使用视图模型传递数据比用ViewBag要好得多。

这也是模型“M”的一种,但并没有使用数据库。我们接下来要学习的是创建一个数据库,创建一个真正意义的视图模型。

本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/p/mvc-5-passing-data-from-the-controller-to-the-view.html,如需转载请自行联系原作者

你可能感兴趣的文章
Nginx的安装配置及访问状态统计
查看>>
部署LVS-DR + keepalived 高可用群集
查看>>
JavaEE的13种核心技术
查看>>
JEPLUS之如何快速复制表——JEPLUS软件快速开发平台
查看>>
如何开发高度可定制的产品
查看>>
利用ScrollView实现布局自动滚动
查看>>
小程序抄的如火如荼,到底是泡沫还是流量红利
查看>>
Linux mint14 输入法及私有驱动
查看>>
moinmoin中安装mathjax显示数学公式
查看>>
前端面试题目大全
查看>>
打包Android项目
查看>>
看了这个,你还敢用分身版微信刷步吗?
查看>>
100V/60Hz,三相200V/60Hz 变频电源的标准电压频率是叫什么?
查看>>
CNN初探
查看>>
在线思维导图工具
查看>>
T-MBA·活动报道 | 第三期第四课:卓越演讲影响力-合适的地点说恰当的话
查看>>
程序员为什么在下雨天比常人反应要快几秒?网友:秒懂了
查看>>
Google官方架构MVP解析与实战进阶必学系列
查看>>
吐槽java时间那点事儿 Joda Time
查看>>
我的友情链接
查看>>