<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        ASP.NET MVC中的視圖生成實例分析

        來源:懂視網 責編:小采 時間:2020-11-27 22:38:40
        文檔

        ASP.NET MVC中的視圖生成實例分析

        ASP.NET MVC中的視圖生成實例分析:本文實例分析了ASP.NET MVC中的視圖生成過程。分享給大家供大家參考。具體如下: 在 ASP.NET MVC 中,我們將前端的呈現劃分為三個獨立的部分來實現,Controller 用來控制用戶的操作,View 用來控制呈現的內容,Model 用來表示處理的數據。 從控制器到視
        推薦度:
        導讀ASP.NET MVC中的視圖生成實例分析:本文實例分析了ASP.NET MVC中的視圖生成過程。分享給大家供大家參考。具體如下: 在 ASP.NET MVC 中,我們將前端的呈現劃分為三個獨立的部分來實現,Controller 用來控制用戶的操作,View 用來控制呈現的內容,Model 用來表示處理的數據。 從控制器到視

        本文實例分析了ASP.NET MVC中的視圖生成過程。分享給大家供大家參考。具體如下:

        在 ASP.NET MVC 中,我們將前端的呈現劃分為三個獨立的部分來實現,Controller 用來控制用戶的操作,View 用來控制呈現的內容,Model 用來表示處理的數據。

        從控制器到視圖

        通常,在 Controller 中,我們定義多個 Action ,每個 Action 的返回類型一般是 ActionResult,在 Action 處理的最后,我們返回對于視圖的調用。
        代碼如下:public ActionResult Index()
        {
            return this.View();
        }
        默認情況下,將會調用與 Action 同名的視圖,比如,在上面的 Action 中,將會使用名為 Index 的視圖。
         
        如果我們傳遞了一個字符串參數,那么,這個字符串就回被視為視圖的名稱,例如,我們希望使用名為 IndexView 的視圖進行呈現,那么,可以如下完成。
        代碼如下:public ActionResult Index()
        {
            return this.View("IndexView");
        }
        布局與視圖

        MVC 會直接去找我們的視圖嗎?不會!
         
        從 Action 返回之后,首先,MVC 會在 Views 文件夾下查看是否存在一個名為 _ViewStart.cshtml 的特殊文件,如果存在的話,就回執行這個文件。
         
        默認情況下,這個文件的內容如下所示:
        代碼如下:@{
            Layout = "~/Views/Shared/_Layout.cshtml";
        }
        也就是說,它設置了我們的默認布局使用那一個文件文件。
         
        布局等價于我們在 WebForm 中所使用的母版頁。
         
        如果沒有這個文件,默認沒有使用布局。
         
        如果有了這個文件,而我們在頁面中不想使用這個布局怎么辦呢?很簡單,在頁面中設置 Layout = null 來覆蓋掉它。
        代碼如下:@{
            Layout = null;
        }
        布局中的分區

        在布局頁面中,默認就回存在一個特殊的指令 @RenderBody(),這是說,你在內容頁面中呈現的內容,將會在這里進行輸出。這就是在使用布局之后,你會發現你的視圖中已經沒有了 <html> 標記的原因。
        代碼如下:<body>
            @RenderBody()
        </body>
        假如說,我們希望在布局中的多個位置進行輸出,比如,樣式表通常在 <head> 標記中,而現代的腳本則會出現在頁面的最后,頁面的內容當然出現在頁面的主體中了。這樣的話,我們在內容頁面的實際內容,將會需要在布局的不同部分進行呈現,而不是在同一個位置進行呈現了。
         
        解決的辦法就是分區,實際上,類似于 WebForm 中的 ContentPlaceHolder ,定義一個命名的區域。
         
        比如,下面我們定義了一個名為 scripts 的命名區域,第二個參數表示這個區域是可選的區域,在內容頁面中可以不用提供內容。
        代碼如下:<body>
            @RenderBody()
         
            @RenderSection("scripts", required: false)
        </body>
        而在我們的內容視圖中,默認所有的內容都是填充到布局頁面中的 RenderBody 部分。
         
        如果不是的話,就可以在內容頁面中,通過 @section 區域名稱{ } 的方式來定義準備輸出到對應區域中的內容了。
        代碼如下:@section scripts{
            <script type="text/javascript">
                var i = 0;
            </script>
        }
        分部視圖

        如果我們的頁面比較復雜,在同一個視圖中定義輸出的內容會導致頁面非常復雜,通過將頁面劃分為多個比較獨立的組成部分,可以將一個復雜的頁面拆分為多個子部分來呈現。比如頁面的標題部分,頁面的菜單,頁面的腳注部分等等。在 WebForm 中,解決這個問題的技術稱為用戶控件,在 MVC 中由兩個技術來解決:分部視圖和子Action。
         
        先看分部視圖,分部視圖不依賴于 Action ,只能嵌入到其他獨立視圖中使用,你可以直接在視圖文件夾中創建分部視圖。
         
        在使用分部視圖的頁面中,使用 RenderPartial 方法調用分部視圖。
        代碼如下:Html.RenderPartial("ProductSummary");
        分部視圖與主視圖共享所有的數據,比如模型,ViewData,ViewBag 等等,這些數據可以直接在分部視圖中使用。
         
        如果希望分部視圖使用不同的模型對象,簡化分部視圖中的數據復雜度,也可以直接傳遞一個模型對象過去。
        代碼如下:Html.RenderPartial("ProductSummary", p);
        這里的第二個參數,將會在分部視圖中當在模型對象來使用。
         
        需要注意的是 RenderPartial 方法的返回類型是 void,它會將輸出的內容直接輸出到回應的輸出流中。所以在使用上面語句的時候,不能直接嵌入到頁面中,需要放在一個 @ { } 語句中,如下所示。
        代碼如下:@{
          Html.RenderPartial("ProductSummary", p);
        }
        如果你不喜歡這樣的語法,而希望直接嵌入到頁面中,也可以使用 Html.Partial 方法來呈現,區別是這個方法返回呈現的 Html 片段,而不是直接輸出到輸出流中。
        代碼如下:@Html.Partial("ProductSummary", p)

        子 Action 問題

        由于分布視圖沒有處理能力,只能繼承主頁面的數據進行呈現,如果需要有處理能力,怎么辦呢?在 WebForm 中,我們可以使用 Server.Execute  來嵌入其它處理程序的輸出內容,在 MVC 中,我們使用子 Action 來處理。
         
        子 Action 就是用戶不能直接訪問,只能在其他的 Action 中訪問的 Action 方法,它與普通的 Action 一樣,有 Action 方法,還有這個 Action 對應的視圖。
         
        我們使用特性 ChildActionOnly 來說明這是一個子 Action。
        代碼如下:[ChildActionOnly]
        public string Menu()
        {
            return "Hello, from NavController";
        }
        如果用戶直接請求這個子 Action ,那么,系統會返回一個錯誤信息。
         
        操作“menu”只能由子請求訪問。

        在其它視圖中,可以使用 RenderAction 來訪問子 Action,類似于 RenderPartial 方法,這個方法直接將內容輸出到輸出流中,由于它們的返回類型都是 void ,所以需要使用 @{} 來使用。
        代碼如下:@{ Html.RenderAction("Menu", "Nav"); }
        同樣,使用 Action 則可以直接返回一個 Html 片段,就不用使用一個 @{ } 了。
        代碼如下:<!--  Action -->
        @Html.Action("Menu", "Nav")

        希望本文所述對大家的asp.net程序設計有所幫助。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        ASP.NET MVC中的視圖生成實例分析

        ASP.NET MVC中的視圖生成實例分析:本文實例分析了ASP.NET MVC中的視圖生成過程。分享給大家供大家參考。具體如下: 在 ASP.NET MVC 中,我們將前端的呈現劃分為三個獨立的部分來實現,Controller 用來控制用戶的操作,View 用來控制呈現的內容,Model 用來表示處理的數據。 從控制器到視
        推薦度:
        標簽: 實例 net 分析
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲天堂男人天堂| 最新亚洲成av人免费看| 亚洲国产成人久久| 永久免费AV无码网站国产| 久久精品亚洲乱码伦伦中文| 成人免费视频一区二区| 亚洲国产婷婷综合在线精品| 午夜在线免费视频 | 国产男女猛烈无遮挡免费视频| 亚洲国产精品无码久久久| 在线免费观看亚洲| 亚洲婷婷在线视频| 四虎在线免费播放| 18禁亚洲深夜福利人口| 全亚洲最新黄色特级网站| 一个人看www免费高清字幕| 亚洲精品无码国产| 日本免费人成视频在线观看| 亚洲视频免费播放| 成人黄18免费视频| 日韩大片在线永久免费观看网站| 亚洲国产香蕉人人爽成AV片久久| 一级午夜免费视频| 亚洲综合免费视频| 午夜视频在线观看免费完整版| 老司机午夜精品视频在线观看免费 | 国产免费久久精品| aa级女人大片喷水视频免费| 日产亚洲一区二区三区| 免费观看男人免费桶女人视频| 一级A毛片免费观看久久精品| 亚洲AV日韩AV永久无码下载| 免费无码AV电影在线观看| 国产亚洲漂亮白嫩美女在线| 亚洲精品无码Av人在线观看国产 | 久久亚洲免费视频| 亚洲国产精品网站在线播放 | 国产成人精品一区二区三区免费| 亚洲另类视频在线观看| 久久久久国产成人精品亚洲午夜| 2015日韩永久免费视频播放|