View的使用
View有許多種多載方式如下
名稱 | 說明 |
---|---|
View() | |
View(Object model) | 將傳入的model回應到預設的controller name,例如:return View(db.entity.ToList()); |
View(String viewName) | 在預設的Controller底下,指定所要呈現的View,亦可打破預設的controller name。 |
View(IView view) | |
View(String viewName, Object model) | 例如:return View("Index",db.entity.ToList()); |
View(String viewName, String masterName) | 使用將檢視呈現至回應的檢視名稱和主版頁面名稱。例如:return View("Index","_Layout2"); |
View(IView view, Object model) | |
View(String, String, Object) |
針對View(String viewName)特別舉例一下
using System.Web.Mvc;
namespace test_route.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View("About");
}
public ActionResult About()
{
ViewBag.Message = "Your About page.";
return View("About");
}
}
}
如上範例程式一開始預設會執行HomeController底下的action name Index,
然後return View到HomeController底下的About頁面,這是蠻直覺的範例。
但是,此View(String viewName)還有不同的用法,
using System.Web.Mvc;
namespace test_route.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View("~/Views/Manage/MIndex.cshtml");
}
}
}
如上例,指定相對路徑給View(),此方式可打破預設的controller name,
讓程式寫法更加彈性。
參考資料: