Heim > Backend-Entwicklung > C#.Net-Tutorial > Vier Möglichkeiten, Daten vom Controller zur Ansicht in ASP.NET MVC zu übergeben

Vier Möglichkeiten, Daten vom Controller zur Ansicht in ASP.NET MVC zu übergeben

高洛峰
Freigeben: 2017-01-14 11:46:39
Original
1757 Leute haben es durchsucht

Vorwort

1. Erstellen Sie unter der Modelldatei im neuen Projekt eine neue Produktklasse:

public class Products
 {
   public int Id { get; set; }
   public string Name { get; set; }
   public double Price { get; set; }
 }
Nach dem Login kopieren

2. Instanziieren Sie diese Klasse im Controller

var p = new Products()
      {
        Id = 1,
        Name = "饮料",
        Price = 2.5
      };
Nach dem Login kopieren

Methode 1: ViewData

Verwenden Sie die ViewData-Methode im Controller, um die oben instanziierten Objekte in Form von Schlüssel-Wert-Paaren wie folgt zu speichern:

ViewData["person"] = p;
Nach dem Login kopieren

Erhalten Sie dann den Wert in ViewData in der Ansicht und konvertieren Sie das Objekt wie folgt:

@{
  var p = (Products)ViewData["person"];
}
<h1>@p.Id</h1>
<h2>@p.Name</h2>
<h3>@p.Price</h3>
Nach dem Login kopieren

Methode 2: ViewBag

Verwenden Sie die Methode im Controller, um das obige Objekt in Form eines dynamischen ViewBag-Ausdrucks wie folgt zu speichern:

ViewBag._Product = p;
Nach dem Login kopieren

Ändern Sie die Ansicht wie folgt:

@{
  var p = (Products)ViewBag._Product;
}
Nach dem Login kopieren

Methode 3: Modell

gibt die Methode im Controller wie folgt an das obige Objekt von View zurück:

public ActionResult Index()
 
    {
 
      var p = new Products()
 
      {
 
        Id = 1,
 
        Name = "饮料",
 
        Price = 2.5
 
      };
 
      return View(p);
 
    }
Nach dem Login kopieren

Und wir sind hier. Das erzwungene Typobjekt Products wird in der Ansicht wie folgt erhalten:

@using MvcTest.Models;
@model Products
@{
  ViewBag.Title = "Index";
}
<h1>@Model.Id</h1>
<h2>@Model.Name</h2>
<h3>@Model.Price</h3>
Nach dem Login kopieren

Methode 4: TempData

TempData kann durch Umleitung weiterhin verwendet werden, da sein Wert in Session gespeichert wird. TempData kann jedoch nur einmal übergeben werden und wird anschließend automatisch vom System gelöscht.

Im Folgenden werde ich den Wechsel von der Aktion „Index“ zur Aktion „Bestellen“ demonstrieren und den in TempData gespeicherten Wert in der Ansicht ausgeben.

Erstellen Sie zunächst eine neue Aktionsmethode im Steuerelement und nennen Sie sie Order-Methode. Der Code lautet wie folgt:

public ActionResult Index()
    {
      var p = new Products()
      {
        Id = 1,
        Name = "饮料",
        Price = 2.5
      };
      TempData["_product"] = p;
      return RedirectToAction("Order");
    }
    public ActionResult Order()
    {
      return View();
    }
Nach dem Login kopieren

Ändern Sie die Ansicht wie folgt:

@{
  Products p = (Products)TempData["_product"];
}
Nach dem Login kopieren

Angenommen, der Code im Controller wird wie folgt geändert:

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("");
    }
Nach dem Login kopieren

Weiter zu: Index – Reihenfolge – Detail, Dann kann das TempData-Objekt in der Detail-Methode nicht abgerufen werden. Ja, da TempData nur einmal übergeben werden kann und anschließend automatisch vom System gelöscht wird.

Ausgabeergebnisse

ASP.NET MVC从控制器传递数据到视图的四种方式

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Lernen aller hilfreich sein wird, und ich hoffe, dass jeder PHP besucht Chinesische Website.

Weitere verwandte Artikel zu den vier Möglichkeiten, wie ASP.NET MVC Daten vom Controller zur Ansicht überträgt, finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage