• MVC学习


    控制器

    在MVC中每一个浏览器请求都会对应一个相应请求的控制器(Controller),

    举个例子,设想一下你在浏览器地址栏输入了下面的URL:

    http://localhost/product/index/3
    

      

    在这种情况下,将会调用一个名为ProductController的控制器。ProductController负责生成对浏览器请求的响应。

    我们新建一个控制器

    public class Default1Controller : Controller
    {
    
                public ActionResult Index()
                {
                      return View();
                }
    
    }
    

      

    一个控制器是一个继承自System.Web.Mvc.Controller基类的类。因为控制器继承自这个基类,所以控制器轻松地继承了一些有用的方法

    控制器(Controller)

    1,控制器(Controller)的方法必须是公共类型的方法,这样的话用户通过地址栏可以直接访问到该方法,所以安全性要做好

    2,控制器(Controller)不能是重载,并且也不能是静态方法

    控制器(Controller)返回结果

    一般情况控制器返回结果我们都会用到基类中的方法,比如创建时候的 return View();

    提供了11种ActionResult的实现

     代码实例

    using System.Web.Mvc;
    namespace MvcApplication1.Controllers
    {
        public class ActionResultController : Controller
        {
            public ActionResult Index()
            {
                return View();
            }
    
            public ActionResult ContentResult()
            {
                return Content("Hi, 我是ContentResult结果");
            }
    
            public ActionResult EmptyResult()
            {
                //空结果当然是空白了!
                //至于你信不信, 我反正信了
                return new EmptyResult();
            }
    
          
    
            这样调用只会在页面输出 必须这样调用才行
           <script src="@Url.Action("GetTime")" type="text/javascript"></script>
            public ActionResult JavaScriptResult()
            {
                string js = "alert("Hi, I'm JavaScript.");";
    
                return JavaScript(js);
            }
            //AllowGET允许使用get请求  
            public ActionResult JsonResult()
            {
                var jsonObj = new
                {
                    Id = 1,
                    Name = "小铭",
                    Sex = "男",
                    Like = "足球"
                };
    
                return Json(jsonObj, JsonRequestBehavior.AllowGet);
            }
          //地址重定向  直接跳到转相应地址下
            public ActionResult RedirectResult()
            {
                return Redirect("~/demo.jpg");
            }
          //路由重定向 跳转到指定地址
            public ActionResult RedirectToRouteResult()
            {
                return RedirectToRoute(new { 
                    controller = "Hello", action = "" 
                });
            }
    
            public ActionResult ViewResult()
            {
                return View();
            }
        //部分视图
            public ActionResult PartialViewResult()
            {
                return PartialView();
            }
    
            //禁止直接访问的ChildAction
            [ChildActionOnly]
            public ActionResult ChildAction()
            {
                return PartialView();
            }
        }
    }
    

      


    更改Action名称
    [ActionName("NewActionName")]
    public ViewResult pp()
    {
    return null;
    }
    

      

  • 相关阅读:
    Event 事件(最简单实用)
    Codeforces Beta Round #93_A题
    欧几里得算法扩展(extended gcd)解不定方程_初入门
    HDU2955_Robberies_01背包变种
    HDU2602_Bone Collector_很水的01背包
    USACO_2_1_3_Sorting a ThreeValued Sequence_交换环
    Codeforces Beta Round #93_B题
    中国剩余定理的_非互素同余模板
    HDU1114_DP_完全背包
    HDU3809_Decrypt coordinate_迭代法
  • 原文地址:https://www.cnblogs.com/linsong521/p/4745341.html
Copyright © 2020-2023  润新知