您是第欢迎光临我的主页位访客
浩凡儿
天行健,君子以自强不息;地势坤,君子以厚德载物!

显示数据
    MVC架构依赖于模型、视图和控制器,虽然彼此分离,但是确实同心协力工作在一起。这种关系中,控制器充当了“交警”的角色。协调系统的不同部分执行不同的应用处理逻辑。这些处理过程可能会返回一些特定的数据给用户。但是,显示数据的工作却不属于控制器,这是视图的职责。那么,控制器如何与视图交互呢?
ASP.NET MVC提供了两种方式在mvc边界之间传递数据:ViewData 和TempData。所以,从控制器向视图传递数据就变得非常简单,只需要在控制器里赋值即可。如下:
public ActionResult About()
{
ViewData["Username"]="孙业宝";
ViewData["CompanyDescription"]="北京开创联合科技有限公司";
return View("About");
}

在视图文件中使用这个值:
<h1>@ViewData["Username"]</h1>
<div>@ViewData["CompanyDescription"]</div>


通过ViewBag访问ViewData的值
    暴露ViewData属性的ASP.NET MVC控制器和视图同样暴露了一个叫做ViewBag相似的属性。ViewBag只是把暴露的ViewData简单包装成一个dynamic动态对象。

如下:

 

 

视图模型
    除了基本的字典行为,ViewData对象也提供了Model属性,这是请求的原始模型对象。虽然ViewData.Model与ViewData["Model"]一样,但是它提升了模型对象的级别为一级,认为比其他数据更重要。
 用法如下:先在Model中封装一个实体类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Ebuy.Models
{
    public class CompanyInfo
    {
        public string Name { get; set; }
        public string Description { get; set; }
    }
}

在Cotroller中这样使用:
  var company = new CompanyInfo { Name="小魏魏",Description="华泰大通财富投资(北京分公司)"};
            return View("About",company);

 

 

 

注意添加命名空间引用

强类型视图
    在默认情况下,Model属性可以在Razor视图里访问,并且是动态类型,这意味着可以直接访问这个类型,而不需要知道它的准确类型。但是,考虑到C#语言的静态属性以及Visual Studio对Razor视图强大的智能感知支持,最好还是明确页面模型的具体类型。用法如下:

也可以直接这样搞
<h3>@Model.Name</h3>
<h4>@Model.Description</h4>

HTML 和URL帮助方法
    绝大部分WEB请求的目标都是向用户发送Html代码。正因为如此,ASP.NET MVC会尽力帮助你去创建HTML。除了Razor标记语言,ASP.NET  MVC也提供了很多生成HTML的简单,有效的方式。最重要的两个帮助类 就是HtmlHelper类和UrlHelper类,作为控制器和视图的Html和Url属性暴露出来。用法如下:


<img src='@Url.Content("~/Content/images/test.jpg")' /><br />
@Html.ActionLink("HtmlHelper生成a标签测试","Index","Home")

posted on 2014-11-07 10:07  浩凡儿  阅读(2057)  评论(0)    收藏  举报