MVC頁面之間參數傳遞的執行個體解析

來源:互聯網
上載者:User
這篇文章主要為大家詳細介紹了MVC頁面之間參數傳遞方法,分享了MVC頁面之間傳值的兩種方式,一是Html.RenderPartial方式,其次是Html.RenderAction 方式,具有一定的參考價值,感興趣的小夥伴們可以參考一下

關於MVC頁面之間的傳值,有多種方式,下面,我們就Html.RenderAction 方式 和 Html.RenderPartial 方式 來給大家分享一下有什麼不同。

一、Html.RenderAction 方式頁面之間傳遞參數的方式:

Html.RenderAction 方式 是訪問的另一頁面的Controller,並將參數傳入另一頁面的Controller中相應的Action中的參數中。

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

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

這個Index中,將接到的參數寫到ViewBag.content中,一面前端View介面中取到。如下:

那麼我們如何利用Html.RenderAction方式,將參數傳入到這個頁面然後展示出來呢?

這就是利用Html.RenderAction方式,傳遞參數給Top 中的 Index 頁的。

大家學會了嘛?

二、Html.RenderPartial 方式

Html.RenderPartial 方式 與 Html.RenderAction 不同,他沒有將參數傳遞到另一頁面的Controller對應的Action,而是直接傳遞到另一介面的Model中。

所以,Html.RenderAction傳值不會經過Controller直接進入Model。

下面我們來看一下具體的操作。

1、首先我們簡曆一個簡單的Model模型。

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

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

上面代碼中,我們將頁面的model制定未Person類。在兩個<h2>標籤中根據類的屬性去取相應的值。

建立完這個頁面,我們就要向這個頁面傳值了,那麼如何用 Html.RenderPartial 向其中傳值呢? 如下:

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

這種方式似乎還有不足的地方,是的,我們不可能每次用Html.RenderPartial方式傳值的時候,都要去建立一個Model模型,這樣的話幾乎是場災難。那麼如何避免呢?

我們用Html.RenderPartial方式向另一介面傳值的理想方式或許是這樣的:

如上面紅框中所示。直接用一個匿名對象將參數包進去,然後傳遞過去就行,但是,另一個頁面是否會接受到呢?

或許,大家早已經測試過了,答案是:不可以。在Model中去Name和Sex,會報錯的(相信各位園友們早已實驗過了)

那麼我們如何改進,能讓這個頁面可以接受到這種方式的參數傳遞呢?如下:

上述方式去取值,就會取到傳遞過來的匿名對象的相應屬性了。是不是很high啊,以後傳值就方便多了。

傳遞的參數的類型也可以是多種多樣,例如:

我們加了一個DateTime類型的參數,那麼另一介面還是一樣,照接不誤。

頁面

好了,關於MVC頁面之間參數傳遞,就分享到這裡了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.