• Mvc基本切入及controller认识


    4控制器定义动作的特性:

       NonAction :使用该属性标识的公用方法不会被视为动作

    示例:

    [NonAction]

      Public void ThisIsNotAnAction(){
      return view();

    }

       ActionName:动作默认名称是动作的方法名称,但是可以通过使用ActionName特性标记方法来改变动作的名称

    示例:

    [ActionNmae("View")]

    Public ActionResult NotTheSameView(){

       Return view();
    }

       AcceptVerbs:设置动作能对其作出响应Http动词,及就是两个相同动作名称并且响应不同的动词的方法

    示例:

    [AcceptVerbs("Get")]

    Public ActionResult Update(){
     return view();

     }

    [AcceptVerbs("Post")]

    Public ActionResult Update(FormCollection form){
    return view();

    }

     AcceptVerbs:还接收字符串数组

       使用同一个方法处理两个或更多的动词 [AcceptVerbs("Get","Post")]

       还可以使用枚举来操作:

       [AcceptVerbs(HttpVerbs.Post)]

       如果是两个或者更多是可以使用二进制或运算符

       [AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)]

    ViewData对象:

     一种像视图传递数据的方法,ViewData就是一个简单存储“名-值”对象集合,可以在其中存储任何类型值,包括从简单消息字符串到复杂层次模型对象的任何类型。

       强类型模型对象:代替ViewData字典中存储的要传递给视图的数据,可以创建自定义传输对象,并使用View方法的各种重载方法之一将对象传递给视图

      示例:

       Page标签中
    Inherits="System.Web.Mvc.ViewPage<Model>"

       需要导入Model的命名空间:

       示例:<%@  Import  Namespace="Mvc中Model的命名空间名称" %>

       这种类型带来的优点:

    访问传递给视图的对象的属性和方法是,不需要在进行其它转换

    可以在编译时检查应用程序的正确性

    支持智能感应,可列出自定义的传递对象中可能包含的所有对象

    ViewData 和强类型的模型对象的生命周期被局限于当前请求,所以在视图中返回到浏览器之后,将不能在访问它们的值。

    示例:

    ViewData["View_Data"]="Asp MVC ViewData";

    页面中可以这访问:<%= ViewData["View_Data"]%>

    TempData对象:

    TempData 就可以认为是我们asp.net中的Session对象,但是不能等同,TempData是一个松散的类型字典,但是其内容在下一个请求发生之前始终可用。

    示例:

     TempData["Temp_Data"]="Asp MVC TempData";

     

     动作结果类型:

      ViewResult:

    它指示框架显示一个视图,同时提供一个自定义的模型对象,它有一个辅助方法View();

    View方法具有8个不同的重载方法。

    主要参数:

    Viewname:需要呈现的视图名称

    Model;传递个视图自定义模型对象

    Mastename:包含指定视图的母版页的名称

     

    PartialViewResult:

    只需要返回需要的Html动作就必须返回PartivalViewResult类型结果,它有一个辅助方法PartialView

     

    RedirectResult:

    将用户重定向到其他的url或动作,通过返回RedirectResult 或RedirectToRouteResult类型的对象实现

    示例:

    Return  Redirect("/Home/Index");

     

    RedirectToRouteResult:

    重定向到外部Url或固定的内部Url,Redirect方法很有用,但是Url在应用程序中保存不变,就存在修改Url字符串的风险,于是就有了RedirectToRouteResult方法

    该方法辅助方法返回这种类型的ActionResult:

    RedirectToAction:希望重定向到动作计算路由

    RedirectToRout:直接选择准的定向到的路由

    这些方法接受的参数:

    RouteValueDictionary:包含(用于匹配路由规则并调用指定动作)路由标记的字典

    routName:用户友好的路由名称。该名称是在应用程序启动代码中注册路由时为路由提供的。

    示例:

    Return  RedirectToAction("Index","Home", new {

                                            Id="12", name="lin.su"

    });

    示例:

    Public ActionResult RedirectToRouteSample(){
            RouteValueDictionary  dictionary  =new RouteValueDittionary();

       dictionary["action"]="Index";

       dictionary["controller"]="Home";

       dictionary["id"]=12;

       Return  RedirectToRoute(dictionary);

       }

    JsonResult:

     返回给视图一个json格式化的消息,可以是使用辅助Json方法,该方法将要格式化的对象,内容类型(如果没有提供参数,默认是application/json)以及内容编码作为参数:

    示例:

     Modle  molde  =new  Model();

     Return  Josn(modle);

     

    JavaScriptResult:

    希望在传递在浏览器上执行的几行javascript代码:动作返回JavaScriptResult类型结果,这种类型是通过javascript辅助方法来创建的

    示例:

    Return  JavaScript("alert('Hello Mvc Javascrpt')");

     

    ContentResult:

    希望完全控制传递给用户的响应,就可以使用ContentResult

    示例:

    Return Content("Italy|Simone|Iran|Keyvan","text/plain");

     

    FileContentResult:

    这种动作结果指示框架为用户传递通用的二进制流:

    示例:

    Return  File(Path.GetFullPath("Content/a.jpg"),"imag/jpg","b.jpg");

     

    EmptyResult:

    这种类型指示框架不进行任何操作

    示例:(动态生成一副图像或者一个PDF是)

    Return  new EmptyResult();

    为了返回一个空结果,也可以返回null,框架会自动转换成一个EmptyResult对象

  • 相关阅读:
    TCP通过哪些措施,保证传输可靠
    http协议---简述
    单播、广播、组播、多播
    axios 设置超时时间 timeout
    axios 处理并发请求
    vue 模板语法
    vue keep-alive
    v-if 条件渲染分组
    debounce 防抖动函数
    vue scoped 深度作用选择器
  • 原文地址:https://www.cnblogs.com/linsu/p/2408406.html
Copyright © 2020-2023  润新知