美文网首页编程语言爱好者.Net微说集C#
第4章 MVC进阶——ASP.NET MVC企业级实战

第4章 MVC进阶——ASP.NET MVC企业级实战

作者: 张中华 | 来源:发表于2018-03-31 15:37 被阅读68次

4.1 View详解

4.1.1 View和Action之间数据传递的方式
  • 弱类型ViewData[""]
  • 动态型ViewBag //dynamic
  • 动态类型Model
  • 临时存储TempData[""]
  • 后台:return View(Data); //存入ViewData.Model
  • 前台:Model //其实就是WebViewPage.Medel
    示例:
    首先添加一个model类:
    public class User
    {
        public string Name { get; set; }
    }

在controller为变量赋值:

 public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewData["One"] = "This is ViewData Test";
            ViewBag.Two = "This is ViewBag Test";
            var _user = new User { Name = "This is Model Test"};
            TempData["Four"] = "This is TempData Test";
            return View(_user); //等于ViewData.Model = _user;
        }
    }

其次在View里面应用在controller的变量:

@Model FirstTest.Models.User
<br/>

@{
    ViewBag.Title = "Index";
}

@ViewData["One"]<br/>
@ViewBag.Two<br/>
@Model.Name<br/>
@TempData["Four"]
<h2>Index</h2>
4.1.2 TempData、ViewData和ViewBag的区别
  • ViewData是字典型的(Dictionary);
  • ViewBag不再是字典的键值对结构,而是dynamic型,会在程序运行的时候动态解析;
  • ViewData为object型,而ViewBag为dynamic型。dynamic型与object型的区别在使用时它会自动根据数据类型转换。

4.2 Razor视图引擎

示例:


@*1. 使用字符串描述输出*@
@{ 
    string strHtml = "Hi Girl~";
    @strHtml;
    <br />
}

@*2.使用HTMLHelper输出*@
@{
    @Html.Raw("use HTMLHelper to output");
    <br />
}

@*3.使用HtmlString类输出*@
@{ 
    HtmlString htm = new HtmlString("use HtmlString");
    @htm;
    <br />
}

@*4.使用MvcHtmlString输出*@
@{ 
    var str = MvcHtmlString.Create("use mvchtmlstring");
    @str;
    <br/>
}

相关文章

网友评论

    本文标题:第4章 MVC进阶——ASP.NET MVC企业级实战

    本文链接:https://www.haomeiwen.com/subject/zjpecftx.html