zoukankan      html  css  js  c++  java
  • ASP.NET MVC 2.0 Html.RenderPartial & Html.RenderAction

    之前在MVC1.0的時候,提供了Html.RenderPartial的方法,讓我們可以將共同的網頁元素設計成「元件」

    的方式使用;不過在產生Model的時候,必須把所有的資料都先準備好,然後提供給Html.RenderPartial。

    例如:一般都會先準備一個ViewModel,提供給View使用。從Controller那邊接收產生的DinnerFormViewModel

    之後,把Model的資料傳遞給名為「DinnerForm」的Partial。

    01 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<NerdDinner.Controllers.DinnerFormViewModel>" MasterPageFile="~/Views/Shared/Site.Master"  %>
    02   
    03 <asp:Content ID="Title" ContentPlaceHolderID="TitleContent" runat="server">
    04     Host a Dinner
    05 </asp:Content>
    06   
    07 <asp:Content ID="Create" ContentPlaceHolderID="MainContent" runat="server">
    08   
    09     <h2>Host a Dinner</h2>
    10   
    11     <% Html.RenderPartial("DinnerForm"); %>
    12   
    13 </asp:Content>

    而在MVC 2.0中,額外提供了Html.RenderAction的方法;這個方法和Partial有點不太一樣,他是直接重新執

    行一次Controller → Model → View的順序,然後把產生的頁面帶回到原來的View中再回傳。

    所以Html.RenderAction中傳遞的參數是執行的Controller和Action名稱。

    01 <div id="header">
    02     <h1>
    03         <a href="/">ASP.NET MVC MUSIC STORE</a>
    04     </h1>
    05   
    06     <ul id="navlist">
    07         <li class="first"><a href="/" id="current">Home</a></li>
    08         <li><a href="/Store/">Store</a></li>
    09         <li>
    10             <% Html.RenderAction("CartSummary", "ShoppingCart"); %>
    11         </li>
    12         <li><a href="/StoreManager/">Admin</a></li>
    13     </ul>
    14 </div>

    若是想讓建立的Action只能讓RenderAction呼叫,可以加上ChildActionOnly屬性,讓他無法被直接呼叫。

    01 //
    02 // GET: /Store/GenreMenu
    03   
    04 [ChildActionOnly]
    05 public ActionResult GenreMenu()
    06 {
    07     var genres = storeDB.Genres.ToList();
    08   
    09     return View(genres);
    10 }

    以下是執行的比較圖:

    image

    image

    Html.RenderPartial与Html.RenderAction的区别

  • 相关阅读:
    GLSL 变量属性
    php读取大文件的方法
    php 3种常见设计模式
    php类自动装载、链式操作、魔术方法
    统计文件中关键词出现的次数
    python先序、中序、后序排序
    Nginx缓存、压缩配置
    Ninx虚拟主机的配置
    python爬虫代码
    Nginx在安装过程经常出现的问题
  • 原文地址:https://www.cnblogs.com/stalwart/p/1807698.html
Copyright © 2011-2022 走看看