zoukankan      html  css  js  c++  java
  • 将一个Asp.Net网站改为MVC

    背景:   网站已经开发的一部分 主要是Web服务和API  现在要做一些给人看的页面
    转载请注明出处 http://www.cnblogs.com/zaiyuzhong/p/add-mvc-in-webapplication.html 

    演示方便我就新建一个空白的, 建好后结构如下:

    添加一个ashx页面, 在浏览器里查看到熟悉的Hello World.

    到现在为止的项目结构,  下面开始就是我们要做的

    1. 安装MVC:

    个人喜欢用控制台安装:  TOOLS -> NuGet Package Manager -> Package Manager Console  打开控制台窗口

    稍等片刻出现 PM> 输入: install-package microsoft.aspnet.mvc (如果需要特定版本如5.0.0 加上 -version 5.0.0)

    最终出现成功的提示(Successfully added 'Microsoft.AspNet.Mvc 5.0.0' to ProjectName.).

    当然你也可以右键项目 -> Manage NuGet Package -> 搜索mvc -> Install

     安装完成后项目结构:

     

    相关的Microsoft.Web.Infrastructure, System.Mvc, System.Razor是不是都粗线了...

    2. 添加Controllers, Views文件夹. 如上图我已经添加好了.

    3. 添加控制器, 视图. (略) BTW: 在视图最上加上 @inherits System.Web.Mvc.WebViewPage 否则出现如下错误

    The view at '~/Views/default/index.cshtml' must derive from WebViewPage, or WebViewPage<TModel>.

    如需引用Model则添加@inherits System.Web.Mvc.WebViewPage<Model类>

    4. 添加Global.asax 及路由表

      跟我一起来 Ctrl Shift A 选择Global Application Class, 不改文件名大家都知道的.

      路由表有两种(我已知的)

        a. 像Microsoft写好的, Map路由规则: 在 App_Start 文件夹中添加 RouteConfig 类, 实现 void RegisterRoutes(RouteCollection) 方法, //这些类名, 方法名, 写哪应该都是可变的... 不过没测试过, 记得把命名空间中的App_Start删除

        在Application_Start中 AreaRegistration.RegisterAllAreas(); RouteConfig.RegisterRoutes(RouteTable.Routes);

        b. 根据特性Map路由: 在Application_Start中 RouteTable.Routes.MapMvcAttributeRoutes(); 在controller上添加[RoutePrefix("XXX")]; 在action上添加[Route("XXX")](可重复添加)

    至此, 就可以在浏览器中看到Hello World on MVC了, 又可以在熟悉的MVC中玩耍了

  • 相关阅读:
    hp_jetdirect 9100漏洞检测
    fenghuangscannerV3 EXE版本
    计划:6.10
    [PY]进制转换
    OpenStack 制作镜像
    Kernel 问题小记
    Ubuntu 问题小记
    Git 常用命令
    OpenStack 构建单测环境
    SDN 杂谈
  • 原文地址:https://www.cnblogs.com/zaiyuzhong/p/add-mvc-in-webapplication.html
Copyright © 2011-2022 走看看