美文网首页编程语言爱好者.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