@Html.Partial和@Html.Action區別


1.首先看一下它們的對等關系

@Html.Partial 對應 @{Html.RenderPartial();}
@Html.Action 對應 @{Html.RenderAction();}

以上相互對應的語句,它們實現的功能是一樣的,不同的就是寫法,

2.Action加載方法的視圖,執行 Controller → Model → View 的順序,然后把產生的頁面帶回到原來的View中再回傳。而Partial直接加載視圖文件內容

3.@Html.Partial可以直接提供用戶控件名作為參數,而Html.Action需要有對應的Action,在Action內部返回PartailResult(即retun PartialView())。

如:下面例子可以說明@Html.Partial的用法

        public ActionResult Index()
        {
            string[] txtArry = { "1", "2", "3" };
            ViewData["txt"] = "歡迎";
            return View(txtArry);
        }

index.cshtml頁面

<body>
    <div>
        @*這里應該顯示:1*@
        @Model[0]
    </div>
    <div>
        @*調用msg1.cshtml*@
        @Html.Partial("msg1")
    </div>
</body>

如果@Html.Partial("msg1")沒有傳具體的值,那么它就會默認把index里的Model值傳過去,如果有具體的參數,那么msg1里的Model值就是為傳過來的參數值

如:@Html.Partial("msg1",(object)Model[1])

msg1.cshtml頁面

<body>
    <div>
        @Model[0]+@ViewData["txt"]
    </div>
</body>

 總結:用@Html.Partial(頁面),那么這個頁面的里的數據源是“調用頁面:index.cshtml”給的,只要index頁面可以接受到的viewdata那么msg1就可以接受,index頁面就是msg1頁面的衣食父母。最后根據不同的用途來選擇吧

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM