zoukankan      html  css  js  c++  java
  • 主攻ASP.NET.3.5.MVC架构之重生:Controller(七)

    <%:RouteData.Values["controller"].ToString()%>
    //通过View的RouteData.Values对象取得当前所有路由值,并动态加载路由值中的Controller的名称

    //Routing
    //客户端请求->URL Routing ->Route->Route Handler->Http Handler


    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    //定义不需要通过Routing处理的网址
    //IgnoreRoute辅助方法是ASP.NET MVC(System.Web.Mvc)

     routes.MapRoute(
                    "Default", // 路由名称
                    "{controller}/{action}/{id}", // 带有参数的 URL
                    new { controller = "Test", action = "Index", id = UrlParameter.Optional } // 参数默认值
                );
    //MapRoute辅助方法是ASP.NET MVC(System.Web.Mvc)

    <%:RouteData.Values["controller"].ToString()%>
    <%:RouteTable.Routes.GetVirtualPath(Request.RequestContext,new RouteValueDictionary(new {page=1})).VirtualPath %>
    view:/?page=1
    http://localhost:6782/Test/?page=1

    //HandleUnknownAction  方法默认会响应"HTTP 404找不到资源"的错误信息
    protected virtual void HandleUnknownAction(string actionName)
    {
    Response.Redirect("/");
    }

     //[ActionName("Default")]动作选取器 只允许Default Action

     ///[NonAction]不对外公开属性

    //把action public 改成private也可以达到同样效果 代码如下
    ------------------------------------------------------
            //[NonAction]
            private ActionResult Index()
            {
                return View();
            }
    //跳转到另一个页面
    ------------------------------------------------------
            //[NonAction]
            [HttpPost]
            public ActionResult Index()
            {
                return new RedirectResult("/");
            }
    //controller辅助方法,跳转到另一个页面 ,此方法多用
    ------------------------------------------------------
            [HttpPost]
            public ActionResult Index()
            {
                return Redirect("/");
            }
    //指定index.apsx页面显示  Redirect不会跳转
    ------------------------------------------------------
            [HttpPost]
            public ActionResult Index()
            {
                return Redirect("/");
            }

            public ActionResult About()
            {
                return View("Index");
            }
    //EmptyResult不会执行任何响应客户端的程序,所以也不返回任何数据,不需要视图
    ------------------------------------------------------
            public ActionResult Empty()
            {
                return new EmptyResult();
            }

    //EmptyResult改写,这样简单
    --------------------------------------------------
            public void Empty()
            {
                return;
            }
    //EmptyResult不会执行任何响应客户端的程序,所以也不返回任何数据,不需要视图
    ------------------------------------------------------
            public ActionResult Empty()
            {
                return new EmptyResult();
            }

    //301——删除请求数据
    //302——在其他地址发现了请求数据
            //Response.Redirect()方法  HTTP302暂时转向
    ------------------------------------------------------
            public void Redirect()
            {
                Response.Redirect("/vipuser/login");
            }
    //Asp.net 4.0新增Response.RedirectPermanent()建立HTTP301永久转向
    ------------------------------------------------------
            public void Redirect()
            {
                Response.RedirectPermanent("/vipuser/login");
            }
    //响应xml content
    ------------------------------------------------------

            public ActionResult Content()
            {
                return Content("<Root><Text>context</Text></Root>", "text/xml", Encoding.UTF8);
            }
    //响应html content
    ------------------------------------------------------
            public ActionResult Content()
            {
                string strHTML = " <h2>Test</h2>";
                return Content(strHTML);
            }
    //响应html content
    ------------------------------------------------------
            public string Content()
            {
                string strHTML = " <h2>Test</h2>";
                return strHTML;
            }
    //输出文件内容 content
    ------------------------------------------------------
            public ActionResult GetFile()
            {
                return File(Server.MapPath("~/Content/Admin/images/background.png"), "image/png");
            }

  • 相关阅读:
    [转载] set IDENTITY_INSERT on 和 off 的设置
    固定GridView的表头和某几列
    图形文件格式小常识
    MVP——ModelViewerPresenter [ZT]
    VB.NET 中图形旋转任意角度 [ZT]
    工厂方法模式和抽象工厂模式之比较 [Z]
    Visual C# 语言概念数据类型(C# 与 Java)
    LINQ 中使用 Distinct 的 Compare过滤重复的字段
    How to load AJAX content into current Colorbox window?
    解决FTP服务器FileZilla server中文乱码问题
  • 原文地址:https://www.cnblogs.com/cube/p/2744205.html
Copyright © 2011-2022 走看看