MVC学习

本文深入探讨了MVC架构中的控制器组件,详细解释了控制器的作用、方法设计原则、返回结果类型及其具体实现案例。通过实例代码展示了如何创建控制器类并运用不同类型的ActionResult方法来响应HTTP请求。

控制器

在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;
}

  

转载于:https://www.cnblogs.com/linsong521/p/4745341.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值