Action要求与View本质

创建一个自定义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);
        }
    }

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索class
, 页面
, 方法
, context
, public
一个
intent.action view、action view、actionbar searchview、actionmenuview、actionbar自定义view,以便于您获取更多的相关知识。

时间: 2024-09-16 23:17:28

Action要求与View本质的相关文章

Asp.net mvc 2 in action 笔记 -2 View Controller

View 第3.10章 ViewData 和强类型视图          一般情况下,定义presentation model,然后形成强类型视图,可以结合ViewData传递小的片段和简单数据,以增加代码的维护性          presentation model类中可以加入data annotations属性,控制数据的验证 HTML helper类 DisplayFor DisplayTextFor EditorFor CheckBoxFor DropDownListFor Hidde

从ORA-01752的错误,透过现象看本质

这几天开发同学反映了一个问题,有一个Java写的夜维程序,用于每天定时删除历史过期数据,3月10日之前经过了内测,但这两天再次执行的时候,有一条SQL语句一直报ORA-01752的错误,由于近期做过一次开发库的迁移,从一个机房搬迁至另一个机房,而且开发同学确认这期间未变代码逻辑,所以怀疑是否和数据迁移有关,这个错误被测试同学提为了bug,卡在版本测试中,有可能造成进度延误,所以属于比较紧急的问题. 再来捋一下这问题的信息, (1).报错的SQL delete FROM (select * fro

学习ASP.NET MVC(四) View/Model 全解

一.摘要 本文讲解在Action中向View传递Model的几种方式.以及View获取Model以后如何编写显示逻辑.还详细 的介绍了ASP.NET MVC框架提供的Html Helper类的使用及如何为Html Helper类添加自定义扩展方法. 二.承上启下 上一篇文章中我们学习了Controller处理一次请求的全过程.在Controller的Action中, 会传递数据给 View,还会通知View对象开始显示.所以Model是在Action中获取的, 并由Action传递给View.

ASP.NET MVC 5 入门教程 (4) View和ViewBag

原文:ASP.NET MVC 5 入门教程 (4) View和ViewBag 文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-get-started-view.html 上一节:ASP.NET MVC 5 入门教程 (3) 路由Route 下一节:ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework 源码下载:点我下载 View(视图)用来显示被controller处理好的数据.本节

grails的controller和action那点事---远程调试groovy代码

  最近由于项目需要,用到了grails,这玩意确实好用,生产率高有类型python的速度与简洁.仅第一印象,用的还不深入,说的不对请轻拍. 遇到的几个问题: 1. groovy远程调试 玩Java的应该都知道在eclipse中有个java remote debug的功能,可以调试java拉起的程序,含jar,含web. 话说业界某公司做IDE,拖拽图元出来的代码,都能对图元进行远程调试,虽然那功能做的不是很漂亮,但也不错. 不多了,言归正传. 一个语言如果不能远程调试,那多痛苦啊,尤其是用在w

通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[上]:采用管道处理请求

之所以称ASP.NET Core是一个Web开发平台,而不是一个单纯的开发框架,源于它具有一个极具扩展性的请求处理管道,我们可以通过对这个管道的定制来满足各种场景下的HTTP处理需求.ASP. NET Core应用的很多特性,比如路由.认证.会话.缓存等,都是通过对管道的定制来实现的.我们甚至可以通过管道定制在ASP.NET Core平台上创建我们自己的Web框架,实际上MVC和SingalR这两个重要的Web框架也是采用这样的方式创建的. [本文已经同步到<ASP.NET Core框架揭秘>

ASP.NET Core管道深度剖析(1):采用管道处理HTTP请求

之所以称ASP.NET Core是一个Web开发平台,源于它具有一个极具扩展性的请求处理管道,我们可以通过这个管道的定制来满足各种场景下的HTTP处理需求.ASP. NET Core应用的很多特性,比如路由.认证.会话.缓存等,也同时定制消息处理管道来实现的.我们甚至可以通过管道定制在ASP.NET Core平台上创建我们自己的Web框架,实际上MVC和SingalR这两个重要的Web框架也是采用这样的方式创建的. HTTP协议自身的特性决定了任何一个Web应用的工作方式都是监听.接收并处理HT

ASP.NET MVC基础_实用技巧

一.MVC与ASP.NET MVC基础概念 MVC是Model-View-Controller的缩写. MVC将应用程序划分为3大组件:模型\视图\控制器. MVC不是ASP.NET所特有,它只是一种开发理念.java中的struts2也是一种MVC模型. ASP.NET MVC从2008年发布1.0版以来,截至2014年ASP.NET MVC最新版本已经是5.0. ASP.NET MVC从1.0版开始,就已经开放源代码(源码地址:aspnetwebstack.codeplex.com). AS

艾伟:AOP in Asp.net MVC

不同的观点,开拓迥然不同的世界. Another point of view can sometimes open up a whole new world.                                                                                                 ---- HSBC 本文内容包括: SoC AOP AOP in Asp.net AOP in Asp.net MVC   SoC Separati