-------------------------------------------------------------------------- --1.ViewBag 这个“东西”在 MVC 开发中很有用,是在 vs2010 中新增的语法,可以将 controller 中存入的值传递到页面供页面使用,类似 View(object model) 方法,使用实例如下。
在控制类中的写法 public class UserController : Controller { public ActionResult UserName() { ViewBag.MyName = "草青工作室"; ViewBag.MyAge = "18"; } }
在 Aspx 页中调用 <%= ViewBag.MyName %> <%= ViewBag.MyAge %>
在 razor(cshtml) 页中调用 @ViewBag.MyName @ViewBag.MyAge -------------------------------------------------------------------------- --2.在 razor视图 中使用用户控件(.ascx) 用户控件位置:~\Views\Core\Frame\CommonView.ascx
在 Aspx 页中调用 <% Html.RenderPartial("~\Views\Core\Frame\CommonView.ascx") %>
在 razor(cshtml) 页中调用 @Html.RenderPartial("~\Views\Core\Frame\CommonView.ascx")
-------------------------------------------------------------------------- --3.Html.RenderAction() MS的定义:调用指定子操作方法并在父视图中以内联方式呈现结果。 解 释:将一个请求的结果和当前页面合并起来,之后呈现给客户 注 意:方法调用的 action 必须标记 [ChildActionOnly] 特性
在 Aspx 页中调用 <% Html.RenderAction("UserController", "UserName"); %>
在 razor(cshtml) 页中调用 @Html.RenderAction("UserController", "UserName")
它有多个重载,其中一个看到了比较有意思可以传递参数,如下。 public class UserController : Controller { [ChildActionOnly] public ActionResult UserName() { // 获得 MyName 参数值的 string content=ValueProvider.GetValue("MyName").RawValue; ... return Content(content); } }
在 Aspx 页中调用 <% Html.RenderAction("UserController", "UserName", new { MyName = "草青工作室" }); %>
在 razor(cshtml) 页中调用 @Html.RenderAction("UserController", "UserName", new { MyName = "'草青工作室'" }) -------------------------------------------------------------------------- --4.Html.RenderPartial() MS的定义:使用指定的 HMTL 帮助器来呈现指定的分部视图。 解 释:将一个用户控件文件(ascx)和当前页面合并起来,之后呈现给客户
上面介绍过了, 2.在 razor视图 中使用用户控件(.ascx)
--------------------------------------------------------------------------
先记录这么多,这点儿东西看了后在开发 mvc 会大大提高变成灵活性!
转载于:https://www.cnblogs.com/xxj-jing/archive/2012/03/02/2890085.html
