首頁 後端開發 C#.Net教程 介紹ASP.NET中的MVC如何從控制器傳遞資料到視圖

介紹ASP.NET中的MVC如何從控制器傳遞資料到視圖

Aug 16, 2017 pm 02:17 PM
asp.net 如何 控制器

本篇文章主要介紹了ASP.NET MVC從控制器傳遞資料到視圖的四種方式,具有一定的參考價值,有興趣的小夥伴們可以參考一下。

前奏

1. 在新專案中的Models檔案下,新建Products類別:


 public class Products
  {
    public int Id { get; set; }
    public string Name { get; set; }
    public double Price { get; set; }
  }
登入後複製

2. 在控制器中實例化此類


var p = new Products()
      {
        Id = 1,
        Name = "饮料",
        Price = 2.5
      };
登入後複製

方式1:ViewData

將控制器中的方法用ViewData以鍵值對的形式類別儲存上述的實例化對象,如下:


ViewData["person"] = p;
登入後複製

然後在視圖中取得ViewData中的值,並轉換對象,如下:


@{
  var p = (Products)ViewData["person"];
}
<h1>@p.Id</h1>
<h2>@p.Name</h2>
<h3>@p.Price</h3>
登入後複製

方式2:ViewBag

將控制器中的方法利用ViewBag動態表達式的形式儲存上述對象,如下:


ViewBag._Product = p;
登入後複製

 修改視圖,如下:


@{
  var p = (Products)ViewBag._Product;
}
登入後複製

 方式3:Model

##將控制器中的方法傳回View上述對象,如下:


public ActionResult Index()

    {

      var p = new Products()

      {

        Id = 1,

        Name = "饮料",

        Price = 2.5

      };

      return View(p);

    }
登入後複製

而我們在視圖中得到強制型別物件Products,如下:


@using MvcTest.Models;
@model Products
@{
  ViewBag.Title = "Index";
}
<h1>@Model.Id</h1>
<h2>@Model.Name</h2>
<h3>@Model.Price</h3>
登入後複製

方式四:TempData

TempData可以透過轉向繼續使用,因為它的值會儲存在Session中。但TempData只能經過一次傳遞,之後會被系統自動清除。

下面我將示範從Index動作轉向Order動作,並在視圖中輸出TempData中儲存的值。

首先在控制中新建Action方法,命名為Order方法,程式碼如下:


#

public ActionResult Index()
    {
      var p = new Products()
      {
        Id = 1,
        Name = "饮料",
        Price = 2.5
      };
      TempData["_product"] = p;
      return RedirectToAction("Order");
    }
    public ActionResult Order()
    {
      return View();
    }
登入後複製

 修改檢視如下:


@{
  Products p = (Products)TempData["_product"];
}
登入後複製

假設控制器中的程式碼修改如下:


public ActionResult Index()
    {
      var p = new Products()
      {
        Id = 1,
        Name = "饮料",
        Price = 2.5
      };
      TempData["_product"] = p;
      return RedirectToAction("Order");
    }
    public ActionResult Order()
    {
      return RedirectToAction("Detail");
    }
    public ActionResult Detail()
    {
      Products _product = (Products)TempData["_product"];
      return View("");
    }
登入後複製
轉向:Index — Order — Detail,那麼在Detail方法中,是不能取得到TempData物件的,因為TempData只能經過一次傳遞,之後會被系統自動清除。

輸出結果

以上是介紹ASP.NET中的MVC如何從控制器傳遞資料到視圖的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Windows 11 上正確校準 Xbox One 控制器的方法 Windows 11 上正確校準 Xbox One 控制器的方法 Sep 21, 2023 pm 09:09 PM

由於Windows已成為首選的遊戲平台,因此確定其面向遊戲的功能就顯得尤為重要。其中之一是能夠在Windows11上校準XboxOne控制器。借助內建的手動校準,您可以擺脫漂移、隨機移動或效能問題,並有效地對齊X、Y和Z軸。如果可用選項不起作用,您可以隨時使用第三方XboxOne控制器校準工具。讓我們來了解一下!如何在Windows11上校準我的Xbox控制器?在繼續操作之前,請確保將控制器連接到電腦並更新XboxOne控制器的驅動程式。當您使用它時,也要安裝任何可用的韌體更新。 1.使用Wind

從零開始學習Laravel:控制器方法呼叫詳解 從零開始學習Laravel:控制器方法呼叫詳解 Mar 10, 2024 pm 05:03 PM

從零開始學習Laravel:控制器方法呼叫詳解在Laravel的開發中,控制器是一個非常重要的概念。控制器起到了連接模型和視圖的橋樑作用,負責處理來自路由的請求,並返回相應的資料給視圖展示。控制器中的方法可以被路由調用,這篇文章將詳細介紹如何編寫並調用控制器中的方法,同時會提供特定的程式碼範例。首先,我們需要建立一個控制器。可以使用Artisan命令列工具來生

php如何使用CodeIgniter4框架? php如何使用CodeIgniter4框架? May 31, 2023 pm 02:51 PM

PHP是一種非常流行的程式語言,而CodeIgniter4是一種常用的PHP框架。在開發Web應用程式時,使用框架是非常有幫助的,它可以加速開發過程、提高程式碼品質、降低維護成本。本文將介紹如何使用CodeIgniter4框架。安裝CodeIgniter4框架CodeIgniter4框架可以從官方網站(https://codeigniter.com/)下載。下

什麼叫laravel控制器 什麼叫laravel控制器 Jan 14, 2023 am 11:16 AM

在laravel中,控制器(Controller)是一個類,用來實現一定的功能;控制器能將相關的請求處理邏輯組成一個單獨的類別。控制器中存放中一些方法,實現一定的功能,透過路由呼叫控制器,不再使用回呼函數;控制器被存放在「app/Http/Controllers」目錄中。

Laravel學習指南:控制器方法呼叫的最佳實踐 Laravel學習指南:控制器方法呼叫的最佳實踐 Mar 11, 2024 am 08:27 AM

在Laravel學習指南中,控制器方法的呼叫是一個非常重要的主題。控制器扮演著連接路由和模型的橋樑的角色,在應用程式中起著至關重要的作用。本文將介紹控制器方法呼叫的最佳實踐,並提供具體的程式碼範例幫助讀者更好地理解。首先,讓我們來了解控制器方法的基本結構。在Laravel中,控制器類別通常存放在app/Http/Controllers目錄下,每個控制器類別包含多個

在Yii框架中使用控制器(Controllers)處理Ajax請求的方法 在Yii框架中使用控制器(Controllers)處理Ajax請求的方法 Jul 28, 2023 pm 07:37 PM

在Yii框架中,控制器(Controllers)扮演著處理請求的重要角色。除了處理常規的頁面請求之外,控制器還可以用於處理Ajax請求。本文將介紹在Yii框架中處理Ajax請求的方法,並提供程式碼範例。在Yii框架中,處理Ajax請求可以透過以下步驟進行:第一步,建立一個控制器(Controller)類別。可以透過繼承Yii框架提供的基礎控制器類別yiiwebCo

如何在Symfony框架中使用控制器的參數? 如何在Symfony框架中使用控制器的參數? Jun 04, 2023 pm 03:40 PM

Symfony框架是一個受歡迎的PHP框架,它是基於MVC(模型-視圖-控制器)架構設計的。在Symfony中,控制器是負責處理Web應用程式請求的關鍵元件之一。控制器中的參數在處理請求時非常有用,本文將介紹如何在Symfony框架中使用控制器的參數。控制器參數的基礎知識控制器的參數是透過路由傳遞到控制器中的。路由是一個將URI(統一資源標識符)映射到控制器和

哈醫大臨床藥學就業是否有前途(哈醫大臨床藥學就業前景怎麼樣) 哈醫大臨床藥學就業是否有前途(哈醫大臨床藥學就業前景怎麼樣) Jan 02, 2024 pm 08:54 PM

哈醫大臨床藥學就業前景如何儘管全國就業情況不容樂觀,但藥科類畢業生仍有著良好的就業前景。整體來看,藥科類畢業生的供給量少於需求量,各醫藥公司和製藥廠是吸收這類畢業生的主要管道,製藥業對人才的需求也穩定成長。據介紹,近幾年藥物製劑、天然藥物化學等專業的研究生供需比甚至達到1∶10。臨床藥學專業就業方向:臨床醫學專業學生畢業後可在醫療衛生單位、醫學科研等部門從事醫療及預防、醫學科研等方面的工作。就業機會:醫藥代表、醫藥銷售代表、銷售代表、銷售經理、區域銷售經理、招募經理、產品經理、產品專員、護

See all articles