溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MVC頁(yè)面之間參數(shù)傳遞的實(shí)現(xiàn)方法

發(fā)布時(shí)間:2021-06-03 14:03:31 來(lái)源:億速云 閱讀:292 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹MVC頁(yè)面之間參數(shù)傳遞的實(shí)現(xiàn)方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

一、Html.RenderAction 方式頁(yè)面之間傳遞參數(shù)的方式:

Html.RenderAction 方式 是訪問(wèn)的另一頁(yè)面的Controller,并將參數(shù)傳入另一頁(yè)面的Controller中相應(yīng)的Action中的參數(shù)中。

例如:我有這么一個(gè)Controller和Action(是一個(gè)部分視圖的)

public class TopController : Controller
  {
    // GET: Top
    public ActionResult Index(string content)
    {
      ViewBag.content = content;
      return PartialView();
    }
  }

這個(gè)Index中,將接到的參數(shù)寫(xiě)到ViewBag.content中,一面前端View界面中取到。如下:

MVC頁(yè)面之間參數(shù)傳遞的實(shí)現(xiàn)方法

那么我們?nèi)绾卫肏tml.RenderAction方式,將參數(shù)傳入到這個(gè)頁(yè)面然后展示出來(lái)呢?

MVC頁(yè)面之間參數(shù)傳遞的實(shí)現(xiàn)方法

這就是利用Html.RenderAction方式,傳遞參數(shù)給Top 中的 Index 頁(yè)的。

大家學(xué)會(huì)了嘛?

二、Html.RenderPartial 方式

Html.RenderPartial 方式 與 Html.RenderAction 不同,他沒(méi)有將參數(shù)傳遞到另一頁(yè)面的Controller對(duì)應(yīng)的Action,而是直接傳遞到另一界面的Model中。

所以,Html.RenderPartial傳值不會(huì)經(jīng)過(guò)Controller直接進(jìn)入Model。

下面我們來(lái)看一下具體的操作。

1、首先我們簡(jiǎn)歷一個(gè)簡(jiǎn)單的Model模型。

public class Person
  {
    public string Name { get; set; }
    public string Sex { get; set; }
   
  }

2、建立界面Boot頁(yè),(Boot自己取的名字) 其 View如下:

MVC頁(yè)面之間參數(shù)傳遞的實(shí)現(xiàn)方法

上面代碼中,我們將頁(yè)面的model制定未Person類(lèi)。在兩個(gè)<h3>標(biāo)簽中根據(jù)類(lèi)的屬性去取相應(yīng)的值。

建立完這個(gè)頁(yè)面,我們就要向這個(gè)頁(yè)面?zhèn)髦盗?,那么如何?Html.RenderPartial 向其中傳值呢? 如下:

MVC頁(yè)面之間參數(shù)傳遞的實(shí)現(xiàn)方法

上述紅框中即為用 Html.RenderPartial 方式傳值。

這種方式似乎還有不足的地方,是的,我們不可能每次用Html.RenderPartial方式傳值的時(shí)候,都要去建立一個(gè)Model模型,這樣的話幾乎是場(chǎng)災(zāi)難。那么如何避免呢?

我們用Html.RenderPartial方式向另一界面?zhèn)髦档睦硐敕绞交蛟S是這樣的:

MVC頁(yè)面之間參數(shù)傳遞的實(shí)現(xiàn)方法

如上面紅框中所示。直接用一個(gè)匿名對(duì)象將參數(shù)包進(jìn)去,然后傳遞過(guò)去就行,但是,另一個(gè)頁(yè)面是否會(huì)接受到呢?

或許,大家早已經(jīng)測(cè)試過(guò)了,答案是:不可以。在Model中去Name和Sex,會(huì)報(bào)錯(cuò)的(相信各位園友們?cè)缫褜?shí)驗(yàn)過(guò)了)

那么我們?nèi)绾胃倪M(jìn),能讓這個(gè)頁(yè)面可以接受到這種方式的參數(shù)傳遞呢?如下:

MVC頁(yè)面之間參數(shù)傳遞的實(shí)現(xiàn)方法

上述方式去取值,就會(huì)取到傳遞過(guò)來(lái)的匿名對(duì)象的相應(yīng)屬性了。是不是很high啊,以后傳值就方便多了。

傳遞的參數(shù)的類(lèi)型也可以是多種多樣,例如:

MVC頁(yè)面之間參數(shù)傳遞的實(shí)現(xiàn)方法

我們加了一個(gè)DateTime類(lèi)型的參數(shù),那么另一界面還是一樣,照接不誤。

MVC頁(yè)面之間參數(shù)傳遞的實(shí)現(xiàn)方法

頁(yè)面

MVC頁(yè)面之間參數(shù)傳遞的實(shí)現(xiàn)方法

以上是“MVC頁(yè)面之間參數(shù)傳遞的實(shí)現(xiàn)方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

mvc
AI