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

總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- ASP.NET?Core?MVC中的視圖(Views)
- ASP.NET Core MVC學(xué)習(xí)之視圖組件(View Component)
- ASP.NET Core MVC基礎(chǔ)學(xué)習(xí)之局部視圖(Partial Views)
- 詳解使用asp.net mvc部分視圖渲染html
- ASP.NET MVC從視圖傳參到控制器的幾種形式
- asp.net core mvc權(quán)限控制:在視圖中控制操作權(quán)限
- ASP.NET MVC從控制器傳遞數(shù)據(jù)到視圖的四種方式詳解
- asp.net MVC 根據(jù)菜單樹類別不同動態(tài)加載視圖的實現(xiàn)步驟
相關(guān)文章
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)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧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

