• 读保哥《ASP.NET MVC2开发实战》第三回(Controller1)


    上面就是一个Controller类;

    执行Controller的过程是先执行Action,然后返回ActionResult。

    在执行Controller类时,如果找不到路径,就会调用一个virtual方法:

    Protect virtual void HandleUnknownAction(string actionName)

    {

    }

    当然为了突出自己的个性,我们可以重写属于自己的HandleUnknownAction方法:

    如:

    Protect override void HandleUnknownAction(string actionName)

    {

       //Response.Resirect("/");//返回主页

     string htmlMessage="错误";//也可以写html元素

      Response.Write(htmlMessge)

    }

    接下来介绍一些属性:

    NonAction:到不想显示这个action时就可以用这个属性来完成,当然到你把action用private是可以达到这个目的;

    HttpGet:接受Get的数据传输;

    HttpPost:接受Post的数据传输;

    所以一个action方法可以写为两种方式,一个是get,一个是post来执行不同的功能。

    重要的来了:ActionResult类

    ViewReult类:

     辅助方法:View,例 View("Index")输出Index页面,View("Index","MasterPage")输出Index页面,并设MasterPage为他的母板页;

    public ActionResult Index()

    {

    var data=db.Msg;

    View(data);//输出表Msg的数据

    }

    ContentResult类:响应文字内容的结果;

    辅助方法:Content(文字内容,Content-Type,文字编码);

    例:

    return Content("<Books><Book>天龙八部</Book></Books>","text/xml",Encoding.UTF8);

    也可以响应HTML;

    例:

    String htmlmsg="................"//html内容

    return Content(htmlmsg);//此方法会自动检测你的数据格式

    FileResult类:

    此类有三个子类:FilePathResult:响应一个实体文件;FileContentResult:响应一个byte数组内容;FileStreamResult:响应一个Stream数据。

    但它的辅助方法File可以检测它的格式,不必那么麻烦的去搞这三个类;

    下载方法设计:

     public ActionResult GetFile()

            {

                var Filename = Server.MapPath("/Views/Shared/html5.pdf"); //文件的路径

                return File(Filename, "application/pdf", "html5.pdf");  //第二个参数指定准确的Content-Type,第三个参数是下载时的名称,建议是英文的。

           }

    JavaScriptResult类:

    javascript默认的Content-type是appication/x-javascript

    响应javascript方式的输出;

      public ActionResult Javascript()

             {

                 return JavaScript("alert('Hello')");

             }

    利用View里的Ajax来实现:

     <%=Ajax.ActionLink("Run JS","Javascript",new AjaxOptions()) %>

    RedirectResult类:

    辅助方法:Redirect:

    例:return Redirect("/Home/Index");//转到Controller=Home,Action=Index;

    RedirectToRoute类:

    辅助方法:RedirectToAction,RedirectToRoute;

    转到同一Controller中的另一Action的写法:

    RedirectToAction("About");

    RedirectToRoute(new {action="About"});

    转到另一Controller的另一Action

    RedirectToAction("About","OtherController");

    RedirectToRoute(new {controller="OtherController",action="About"});

    转到另一Controller的另一Action且加一Routevalue

    RedirectToAction("About","OtherController",new {page=3});

    RedirectToRoute(new {controller="OtherController",action="About",page=3});

    由于也是初次接触MVC,好些其他的玩意暂时还没碰到,以后看到了再补充吧;

  • 相关阅读:
    Python join方法
    Python字符串capitalize center 方法
    Python int 中 add abs 方法
    Nginx Windows 安装启动
    Angularjs 首次加载显示{{}}
    Mysql 字符串截取
    Mysql 主键常用修改
    AES 加密256位 错误 java.security.InvalidKeyException: Illegal key size or default parameters
    Tocmat 启动错误 Port 8005 required by tomcat v7.0 server at localhost is already in use
    Socket IO Web实时推送
  • 原文地址:https://www.cnblogs.com/wangheblog/p/2433742.html
Copyright © 2020-2023  润新知