ASP.NET MVC中分部視圖的應用方法
概述:
在ASP.NET Web Form的開發(fā)經(jīng)驗中,對于User Control使用比較頻繁,可以減少重復的代碼,利于頁面模塊化,這個概念也被引入了ASP.NET MVC.即“分部視圖”。
什么是分部視圖,我們應該什么時候應該用?
作為一個對ASP.NET MVC 模型很熟悉的開發(fā)者,他們自然想創(chuàng)建一個內(nèi)容和代碼都可以重用的組件,在web 窗體,我們可以創(chuàng)建一個web用戶控件或web服務器控件。但是在MVC,我們應該用分部視圖,在這個概念的角度看,對任何情景的應用情景都應該有用。
在應用程序中,每一頁上都顯示這個股票行情
在應用程序中,一個日歷控件顯示在多個頁面中
一個登錄框
用于在多個頁面上的社交網(wǎng)絡組件,如Facebook的Like按鈕。
雖然ASP.NET MVC 的分部視圖,在語法和功能這兩個不同的角度,理論上可以理解為用戶控件。WEB用戶控件在WEB窗體中使用ViewState、PostBacks, and Events 。而在MVC的分部視圖,不使用任何上述技術管理狀態(tài)。正如ASP.NET Web用戶控件做的,分部視圖,可以挖掘到你的應用程序以及其他應用程序組件之間的數(shù)據(jù)共享中的模型。
1、創(chuàng)建分部視圖:
在解決方案管理器中,找到Views文件夾下的Shared文件夾,右鍵添加視圖,選擇創(chuàng)建為分部視圖,如圖:

2、修改分部視圖:
<p>分部視圖中的p元素</p>
3,在其他視圖中引用分布視圖:
@Html.Partial("~/Views/Shared/IncludePart.cshtml");
<p>原視圖中的p元素</p>
效果如圖所示:

4,第二種引用方法,代碼如下:
@Html.Action("Test","Home")
<p>原視圖中的p元素</p>
并且修改Home控制器中的Test動作方法,代碼如下:
public ActionResult Test()
{
return View("~/Views/Shared/IncludePart.cshtml");
}
運行后的效果與3中的一致。
5,可以向Action中傳遞參數(shù),代碼如下:
@Html.Action("Test", "Home", new { name = "SharpL", id = 1 })
<p>原視圖中的p元素</p>
修改分部視圖中的代碼為:
<p>我是分部視圖</p> <p>博客名為:@ViewBag.name</p> <p>博客的id為:@ViewBag.id</p>
修改Home控制器中Test動作方法的代碼如下:
public ActionResult Test(string name,int id)
{
ViewBag.id = id;
ViewBag.name = name;
return View("~/Views/Shared/IncludePart.cshtml");
}
運行后的效果如圖:

6,普通的視圖也可以作分部視圖使用
代碼如下:
@Html.Partial("~/Views/View1.cshtml")
其中View1為普通視圖如下:
<p>我是普通視圖中的p元素</p>
效果如圖所示:

總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
ASPX向ASCX傳值以及文本創(chuàng)建圖片(附源碼)
把用戶在TextBox輸入的文字創(chuàng)建為一個圖片,ASCX的ImageButton的ImageUrl重新指向這剛產(chǎn)生的圖片,接下來介紹下ASPX向ASCX傳值,感興趣的朋友可以參考下哈2013-03-03
.NET Core Dapper操作mysql數(shù)據(jù)庫的實現(xiàn)方法
這篇文章主要介紹了.NET Core Dapper操作mysql數(shù)據(jù)庫的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
實現(xiàn).Net7下數(shù)據(jù)庫定時檢查的方法詳解
在軟件開發(fā)過程中,有時候我們需要定時地檢查數(shù)據(jù)庫中的數(shù)據(jù),并在發(fā)現(xiàn)新增數(shù)據(jù)時觸發(fā)一個動作。為了實現(xiàn)這個需求,本文我們在?.Net?7?下進行一次簡單的演示。感興趣的可以了解一下2022-12-12

