ASP.NET MVC5(3)数据从控制器传递给视图
2015-08-09 15:11
639 查看
控制器负责给任何数据或者对象提供一个必需的视图模板,用这个视图模板来Render返回给浏览器的HTML。最佳做法是:一个视图模板应该永远不会执行业务逻辑或者直接和数据库进行交互。相应的,一个视图模板应该只和控制器所提供的数据进行交互。维持这种"隔离关系"可以帮助,保持代码的干净、测试性和更易维护。
更改
MVC model binding system 会自动将地址栏中URL里的 query string映射到您方法中的参数(
完整的HelloWorldController.cs文件如下所示:
现在
接下来,您需要一个欢迎视图模板 !
下面显示了完整的Welcome.cshtml文件。
运行应用程序,并浏览下面的 URL : http://localhost:xx/HelloWorld/Welcome?name=Scott&numtimes=4
现在,模型绑定(model
binder) 使得数据从URL传递给控制器。控制器将数据装入到
url->控制器->视图
更改
Welcome方法,将
Message和
NumTimes的值添加到 ViewBag对象里。
ViewBag是一个动态的对象,这意味着在您没有给
ViewBag放置属性时,它没有任何属性,您可以把任何您想放置的对象放入到
ViewBag对象中。ASP.NET
MVC model binding system 会自动将地址栏中URL里的 query string映射到您方法中的参数(
name和
numTimes)。
完整的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.cshtml文件。
@{ ViewBag.Title = "Welcome"; } <h2>Welcome</h2> <ul> @for (int i = 0; i < ViewBag.NumTimes; i++) { <li>@ViewBag.Message</li> } </ul>
运行应用程序,并浏览下面的 URL : http://localhost:xx/HelloWorld/Welcome?name=Scott&numtimes=4
现在,模型绑定(model
binder) 使得数据从URL传递给控制器。控制器将数据装入到
ViewBag对象中,通过该对象传递给视图。然后视图为用户生成显示所需的HTML。
url->控制器->视图
相关文章推荐
- ASP.NET MVC5(2)视图
- ASP.NET MVC5(1)返回字符串+路由解析设置
- Asp.Netserver控制发展Grid实现(一个)UI转让
- jasperreport 生成报表三种方式,复制就可用。
- CasperJS 抓取京东商品详情页中的商品信息
- ASP入门(二)-创建Access数据库
- IIS发布ASP.NET MVC4.0教程
- ASP.NET MVC中如何在当前页面上弹出另外一个页面
- ASP通过ODBC连接SQL Server 2008数据库的方法
- asp.net 发送 xml post请求和接收 xml post请求时出现(500) 内部服务器错误(WebClient学习笔记)
- ASP.NET 5探险(8):利用中间件、TagHelper来在MVC 6中实现Captcha
- CasperJS API介绍(3)-- CasperJS utils module API介绍
- ASP入门(一)环境的搭建
- ASP.NET MVC RegisterRoutes浅解
- ABP(现代ASP.NET样板开发框架)系列之22、ABP展现层——导航栏设置
- 【asp.net】用户控件&自定义控件
- PHP模拟asp.net的StringBuilder类实现方法
- 从底层角度看ASP.NET-A low-level Look at the ASP.NET...
- ASP.NET(1)——三个对象
- PHP模拟asp中response类实现方法