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

Action要求與View本質

編輯:關於ASP.NET

創建一個自定義action必須滿足的要求

方法必須為公共的.

方法不能為靜態方法.

方法不能是 Control基類中的方法(如:ToString,GetHashCode等)

方法不能為擴展方法.

方法不能為一個構 造函數 ,getter,  setter.

方法不能包含ref 或 out 參數.

使用 NonActionAttribute 特 性將阻止該action被調用

namespace MVCViewAndAction.Web.Controllers
{
    [HandleError]
    public class UserDemoController : Controller
    {
        //
        // GET: /UserDemo/
        //自定義一個簡單的方法
        [NonAction]  
        //public sealed class NonActionAttribute表示一個特性,該特性用於指示控制器方法不是操作方

法。
        public string DisplayString()
        {
            return "this is a demo string!";
        }
     }
}

理解Views

相對於 ASP.NET 與 Active Server Pages, ASP.NET MVC 並不包含任何直接對 應的一個頁面。在ASP.NET MVC 應用程序中,你鍵入浏覽器地址欄中的URL在磁盤上並沒有相應的一個頁面, 該URL被映射為 controller actions。與頁面page最相近的正是我們所說的View。

最基本的如下:

public ActionResult Index()
{
     return View();
}

為了探究view的本質,以顯示如下的結果:

Code highlighting produced by Actipro 

CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
    
--> public class UserDemoController : Controller
    {
        public RssActionResult RssShow()
        {
            return new RssActionResult();
        }
    }

我們需要創建一個繼承ActionResult的RssActionResult類,如下所示:

Code 

highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
    
-->namespace MVCViewAndAction.Common
{
    /*
     * System.Web.Mvc
    public abstract class ActionResult
    {
        protected ActionResult();
        public abstract void ExecuteResult(ControllerContext context);
    }*/
    public class RssActionResult:ActionResult
    {
        public RssActionResult()
        { 
        }
        //
        public override void ExecuteResult(ControllerContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("ControllerContext is null!");
            }
            HttpResponseBase response = context.HttpContext.Response;
            Rss rss = new Rss();
            rss.CreateSampleRss(response);
        }
    }

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