ASP.NETにおけるMVC伝達データのいくつかの形式のまとめ
2954 ワード
この例ではASPについて述べる.NETのMVCはデータのいくつかの形式を伝達します.皆さんの参考にしてください.具体的には以下の通りです.
Asp.Netmvcの開発では、ControllerはViewにModelを提供し、ViewはこのModelをHTMLにレンダリングする必要があります.この記事では、ControllerからViewにデータを転送する3つの方法を紹介し、DropDownListの表示を実現します.
1つ目:ViewData
ViewDataはDictionaryです.非常に簡単に使用できます.次のコードを見てください.
Viewで次のコードを使用して値を取ります.
上のコードはasを使用してSelectListに変換されます.
処理POSTコードは以下の通りである.
2つ目:ViewModel
ViewModelを使用するには、次のようなBookViewModelを作成します.
コントローラのAcitonでViewModelを使用してデータを格納するコードは次のとおりです.
Viewでは、スマートセンサーをサポートする第1の方法よりも優れています.
効果は最初の方法と同じです.
3つ目:TempData
TempDataを使用する方法とViewDataを使用する方法は同じです.
アクションコードは次のとおりです.
Viewの値のコードは次のとおりです.
効果:最初の方法は同じです.
TempDataとViewDataの違い
簡単なテストをしてTempDataとViewDataの違いを見てみましょう
RedirectToActionがActionにジャンプすると、ViewDataの値はクリアされ、TempDataはクリアされません.これが違いの1つです.
皆さんのaspについてお話ししたいと思います.Netプログラミングが役立ちます.
Asp.Netmvcの開発では、ControllerはViewにModelを提供し、ViewはこのModelをHTMLにレンダリングする必要があります.この記事では、ControllerからViewにデータを転送する3つの方法を紹介し、DropDownListの表示を実現します.
1つ目:ViewData
ViewDataはDictionaryです.非常に簡単に使用できます.次のコードを見てください.
public ActionResult ViewDataWay(int id)
{
Book book =bookRepository.GetBook(id);
ViewData["Countries"] = new SelectList(PhoneValidator.Countries, book.Country);
return View(book);
}
Viewで次のコードを使用して値を取ります.
model.Country) %>
上のコードはasを使用してSelectListに変換されます.
処理POSTコードは以下の通りである.
[HttpPost]
public ActionResult ViewDataWay(int id, FormCollection collection)
{
Book book = bookRepository.GetBook(id);
UpdateModel(book);
bookRepository.Save(book);
return RedirectToAction("Details", new { id=id});
}
2つ目:ViewModel
ViewModelを使用するには、次のようなBookViewModelを作成します.
public class BookViewModel
{
public Book Book
{
get;
set;
}
public SelectList Countries
{
get;
set;
}
public BookViewModel(Book book)
{
Book = book;
Countries = new SelectList(PhoneValidator.Countries,book.Country);
}
}
コントローラのAcitonでViewModelを使用してデータを格納するコードは次のとおりです.
public ActionResult ViewModelWay(int id)
{
Book book = bookRepository.GetBook(id);
return View(new BookViewModel(book));
}
Viewでは、スマートセンサーをサポートする第1の方法よりも優れています.
効果は最初の方法と同じです.
3つ目:TempData
TempDataを使用する方法とViewDataを使用する方法は同じです.
アクションコードは次のとおりです.
public ActionResult TempDataWay(int id)
{
Book book = bookRepository.GetBook(id);
TempData["Countries"] = new SelectList(PhoneValidator.Countries, book.Country);
return View(book);
}
Viewの値のコードは次のとおりです.
model.Country) %>
効果:最初の方法は同じです.
TempDataとViewDataの違い
簡単なテストをしてTempDataとViewDataの違いを見てみましょう
public ActionResult Test1()
{
TempData["text"] = "1-2-3";
ViewData["text"] = "1-2-3";
return RedirectToAction("Test2");
}
public ActionResult Test2()
{
string text1 = TempData["text"] as string;
string text2 = ViewData["text"] as string;
return View();
}
RedirectToActionがActionにジャンプすると、ViewDataの値はクリアされ、TempDataはクリアされません.これが違いの1つです.
皆さんのaspについてお話ししたいと思います.Netプログラミングが役立ちます.