程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> MVC-controller隨筆,mvcviewcontroller

MVC-controller隨筆,mvcviewcontroller

編輯:關於.NET

MVC-controller隨筆,mvcviewcontroller


 初識MVC-controller隨筆

1 public class HomeController : Controller 2 { 3 /// <summary> 4 /// 要求網址 http://localhost/Home/Index 5 /// </summary> 6 [ActionName("Default")] 7 public ActionResult Index() 8 { 9 return View(); 10 } 11 12 }

 唯一需要特別注意的是,如果你使用默認的"return View()"方法返回ActionResult類,由於應用了[ActionName("Default")]屬性,所以MVC會去尋找"/Views/Home/Default.aspx"頁面而不是"/Views/Home/Index.aspx"頁面來執行。

6 動作方法選取器

    6.1  NonAction屬性

    若將NonAction屬性應用在Controller中的Action方法上,即便該Action方法是公開方法,也會告知ActionInvoke不要選取這個Action來執行。這個屬性主要用來保護Controller中的特定公開方法不會被發布到Web上。或是當功能尚未開發完成就要進行部署時,若暫時不想將此方法刪除,也可應用這個屬性,表示"不要對外公開"。

  [NonAction]
        public ActionResult Index()
         {
           return View();
         }

 將Action方法中的"public"修改成"privare",也可以達到同樣的目的

 6.2  HttpGet屬性、HttpPost屬性、HttpDelete屬性和HttpPut屬性

  HttpGet、HttpPost、HttpDelete和HttpPut屬性是動作方法選取器的一部分,我們以下列程序為例進行介紹。若應用了[httpPost]屬性,表示只有當客戶端浏覽器發送HTTP POST請求時才可以選取這個Action。  

 [HttpPost]
2         private ActionResult Index()
3         {
4             return View();
5         }

  相反的,若果沒有應用這些屬性,客戶端浏覽器發送任何HTTP動詞,都會自動選取對應的Action。

 這些屬性常用在需要接受窗口數據的時候。你可以創建兩個同名的Action,一個應用[HttpGet]屬性來顯示窗口HTML,另一個應用[HttpPost]屬性來接收窗口送出的值,

7 ActionResult類

 ActionResult類是Action執行的結果,但ActionResult中並不包含執行結果,而是包含執行響應時所需的信息。當Action返回ActionResult類之後,會由MVC執行。先看看ActionResult抽象類的程序代碼。在ActionResult抽象類中僅定義了一個ExecuteResult()方法來執行結果

MVC定義的ActionResult如表所示:

 表中的Controller輔助方法在Controller類中為返回ActionResult類提供支持,如下程序可用於跳轉到另一個頁面。

1      [HttpPost]
2         public ActionResult Post(FormCollection c)
3         {
4             return new RedirectResult("/");
5         }

到此本文結束,如果還有什麼疑問或者建議,可以多多交流,原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved