• MVC神韵你想在哪解脱!(二)


    Controller & Action
        通过URL Routing确定的Controller类和Action方法。Action中执行的是表现逻辑,根据用户传入的参数(URL)来操作Model(执行业务逻辑)-->获取数据-->选择一个View进行输出。(
    Model就像专家系统的领域专业库或者就像业务服务,你给它要的信息它给你专业业务服务处理,处理结果怎么表达呢,把UI视图拿来,看什么视图了表达方式不同,呵呵。)Action执行之后返回的是一个ActionResult(生成html,页面跳转...).


    Controller是一个类,而Action是一个方法。
    Conetroller的要求:
    1>.继承System.Web.Mvc.Controller控制器基类.如果没有传递参数给控制器,控制器就会默认调用Index的Action.但如果没有Index的Action。就会报错!

         如: public class SampleController:Controller

                {     public ActionResult Index(){....}  //默认的Index的Action

    2>.类名必须以Controller结尾。XyzController的名称即为:Xyz

    3>.ASP.NET MVC框架会在Web应用程序所引用的所有程序及范围内查找Controller。

    4>.引入三个命名空间:system,  system.Web,  system.Web.Mvc

     

    Action的要求:
    必须是个公有的方法
    返回ActionResult类型,也可以返回void。直接使用Response.Write
    必须是实例方法
    不能使泛型方法
    没有标注NonActionAttribute
    不能被重载

     

    ActionResult:是一个抽象类表示Action的执行结果,ASP.NET MVC架构将在获得ActionReault之后执行其Execute方法。
    内置的ActionResult:

    ActionRedirectResult:跳转到某个Action。

    HttpRedirectResult:跳转到任意地址。

    RenderViewResult:生成内容。

    EmptyResult:什么都不做。

    JsonResult:用于JSON序列化输出。

    ContentResult:直接输出字符串。

    注:在这里不得不说,URL被作为大型模块的路径指针应用,就像路径文件名的调用一样。通过URL来决定在什么样的业务逻辑下调用什么样的方法处理!当然这种解释不太确切,你理解它才能懂得MVC的控制精髓!

     

    生成View
    ViewEngine(表明使用了什么样的View进行生成),它是可替换的。
    默认使用aspx,ascx,master
    MvcContrib提供了额外的4种ViewEngine。 ASP.NET MVC的默认View:.aspx--页面内容的主体,.master--模板框架,.ascx--局部视图:Html.RenderUserControl方法将一个UserControl生成局部视图。
    需继承System.Web.Mvc.ViewPage
    --ViewData有个属性为Model
    --ViewPage的ViewData为T类型
    --默认的ViewPage近似于ViewPage

     

    View中生成html的方式:
    1>.内联脚本方式:for{},foreach{}。类似ASP,但是并不是业务逻辑和显示的html放在一起。两者还是分离的。
    使用脚本最大的好处就是使用灵活。调试起来是不是不是很方便???
    2>.使用控件:Repeater(推荐)可以用来显示一维数据,ListView (推荐)可以用来显示二维数据
    3>.使用辅助方法
    --HtmlHelper类:提供的一些辅助的方法为我们生成Form,ActionLink,Button,CheckBox,Select(下拉框),Encode....的HTML
    方法中提供了很多重载。
    --UrlHelper类:生成Url以及与Url相关的东西。比如生成Action的Url。

     

     

     

  • 相关阅读:
    QT 中如何实现一个简单的动画
    qt 中画线时如何设置笔的颜色和填充
    QT自定义窗口
    qt 中创建一个工作线程(例子)
    QT 获取系统时间
    火狐浏览器 system error code 1722 rpc服务器不可用和谷歌浏览器的插件application/x-print-ladop不支持
    ORA-10858:在要求输入数字处找到非数字字符
    eaeyui-combobox实现组合查询(即实现多个值得搜索)
    Mybatis中的模糊查询
    如何设置像我这样的博客的样式。
  • 原文地址:https://www.cnblogs.com/sonykings/p/3091697.html
Copyright © 2020-2023  润新知