如何在ABP框架中使用MVC启动模板而非Razor Pages
在ABP框架中创建MVC(非Razor Pages)项目的方法
ABP官方目前没有直接生成MVC启动模板的命令,默认创建的项目会使用Razor Pages。你可以通过改造默认项目的方式得到纯MVC结构的项目,具体步骤如下:
1. 创建默认ABP项目
先用官方命令生成基础项目,比如:
abp new MyMvcProject
这个命令会生成包含Razor Pages的标准ABP解决方案。
2. 移除Razor Pages相关依赖与代码
- 删除Web项目下的
Pages文件夹(所有Razor Pages页面) - 打开Web项目的
.csproj文件,删除对Volo.Abp.AspNetCore.Mvc.UI.RazorPages包的引用 - 在Web模块类(比如
MyMvcProjectWebModule)中,移除typeof(AbpAspNetCoreMvcUiRazorPagesModule)的模块依赖项
3. 配置MVC路由与添加核心代码
- 确认Web项目已引用
Volo.Abp.AspNetCore.Mvc包(默认已包含,若缺失可手动添加) - 在模块类的
ConfigureServices方法中配置MVC选项:Configure<MvcOptions>(options => { options.EnableEndpointRouting = false; }); - 在模块类的
Configure方法中替换路由配置为传统MVC路由:// 注释或删除原有的UseRouting、UseEndpoints代码 app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); - 在Web项目中创建
Controllers文件夹,添加示例控制器:public class HomeController : AbpController { public IActionResult Index() { return View(); } } - 创建
Views文件夹,对应控制器添加视图文件(比如Views/Home/Index.cshtml)
4. 调整UI布局与静态资源
- 在
Views/Shared下创建或改造_Layout.cshtml,确保正确引用ABP的静态资源(样式、脚本) - 移除原Razor Pages布局中与MVC不兼容的代码,保持MVC视图的布局结构
完成以上步骤后,你的项目就会基于ABP框架运行纯MVC模式,同时保留ABP的核心功能(模块化、身份验证、授权等)。
内容的提问来源于stack exchange,提问作者Amr Rashed
相关产品推荐
相关产品推荐

