標籤:檔案夾 方式 ice lis 傳回值 arp entry port dynamic
控制器(Controller)主要是定義方法和載入視圖(View)
1.控制器中的Action方法傳回值的類型ActionResult,string
2.控制器中Action方法接收瀏覽器參數方式:
2.1.通過 URL路由中配置的同名參數 --url: "{controller}/{action}/{id}",//Stu/Del/1
public ActionResult Del01(int id)
2.2.通過 Request.Form/Request.QueryString
[HttpPost] public ActionResult Modify() { //model.Id //model.Name Request.Form["Name"] return Redirect("/stu/index"); }
[HttpGet] public ActionResult Modify() { //model.Id //model.Name Request.QueryString["Name"] return Redirect("/stu/index"); }
2.3.通過 FormCollection
public ActionResult Modify2(FormCollection from) { //from["Name"] return null; }
2.4.通過 模型繫結 --View中所有空間的名稱必須和模型中屬性名稱一致,一般是post過來的才能接收
[HttpPost] /// <summary> /// 3.2修改 - 執行修改 /// </summary> /// <param name="model"></param> /// <returns></returns> public ActionResult Modify(Models.Student model)//模型繫結:.NetMVC架構會在調用action方法前,建立 參數model對象,並從請求報文中檢查看是否有與該對象屬性同名的 資料,如果有,則 設定給 該對象同名的屬性 { DbEntityEntry entry = db.Entry<Models.Student>(model); entry.State = System.Data.EntityState.Unchanged; entry.Property("Name").IsModified = true; entry.Property("CId").IsModified = true; db.SaveChanges(); return Redirect("/stu/index"); }
視圖載入方式:
//--------------------------------------2.0 載入指定視圖----------------------------------- public ViewResult LoadViewBySelf() { return View(); //1.0 通過指定 視圖名 載入 指定的視圖:此視圖 必須在 當前控制器同名 的檔案夾中 //return View("LoadTarget"); //2.0 通過指定 視圖路徑 載入指定的視圖:基於根目錄 return View("~/Views/Home/List.cshtml"); }
控制器向View傳遞資料
1.控制器類對象建立視圖類對象,並把控制器類中的屬性ViewBag、ViewData、TempData、Model值賦值給視圖類對象的屬性ViewBag、ViewData、TempData、Model
2.ViewBag、ViewData在視圖類對象中互相共用的
3.Model是ViewData的Model屬性
public ViewResult TransData() { ////動態資料類型,類似與JS裡的對象。 ////但是因為 此種對象是在運行時才知道對象的類型,所以編譯器和VS都無法推斷併產生 智能提示 //dynamic obj = new object(); //dynamic Cla = new ClaController(); //dynamic num = 1; ////動態資料類型 可以動態 添加屬性 //obj.AA = 123; //int a = obj.AA; //3.1 ViewBag ViewBag.GzItcast = "廣州傳智播客~~~!"; //3.2 ViewData ViewData["HnItcast"] = "湖南傳智播客~~~!"; //3.3 TempData TempData["USAItcast"] = "美國傳智播客~~~!"; //3.4 Model Models.Class modelClass = new Models.Class() { CName="德國傳智播客~~!" }; ViewData.Model = modelClass;//return View(modelClass)就是把modelClass賦值給控制器對象ViewData屬性的Model屬性 return View(); }
Views
<html><head> <meta name="viewport" content="width=device-width" /> <title>TransData</title></head><body> <div> @ViewBag.GzItcast <br /> @ViewData["HnItcast"] <br /> @ViewBag.HnItcast <br /> @ViewData["GzItcast"]<br /> @TempData["USAItcast"]<br /> @Model.CName<br /> @ViewData.Model.CName </div></body></html>
MVC學習二:Controller和View關係