如何设置Asp.net MVC5 Route Attribute ?

问题描述

要实现访问以下网址都能到达同一个action。//index.html/index_[关键字]_[页数].html而[关键字]和[页数]可以为空,URL就会变成下面三种情况/index__.html/index_[关键字]_.html/index__[页数].html[Route,Route("index.html"),Route("index__.html"),Route("index__{pageIndex:int?}.html"),Route("index_{keyword?}_{pageIndex:int?}.html"),Route("index_{keyword?}_.html")]publicActionResultIndex(stringkeyword,int?pageIndex=1){returnView(DataHelper.Get(newQuery{PageIndex=pageIndex??1,KeyWord=keyword}));}

我现在代码是这样子实现(傻瓜式)的,但感觉应该是有更好的设置方法。因为一旦条件多了,总不可能把每种可能性都写出来。

解决方案

解决方案二:
那你在路由的入口里检测然后转向前缀路由

时间: 2024-09-13 09:37:31

如何设置Asp.net MVC5 Route Attribute ?的相关文章

初识ASP.NET Mvc5+EF7的奇妙之旅_实用技巧

话说今年微软是很给力的,Win10算是吸引了大众的眼球了,而最新的.NET5框架更是OK. 最新的.NET5进行了开源,同时利用NuGet以及Node和Bower进行了跨平台化:这意味这可以直接在Mac或者Linux上使用.NET进行开发. 而最新的Mvc5和EF框架也算是进行了换脸了,跟之前Mvc4的项目都不一样,如果进行移植除了核心代码可以拷贝过来,其他的统统要重新来过. 最近准备改版一下网站,所以尝试了一把最新的框架:当然由于现在还是预览版所以改动什么的都超大,所以也走了不少弯路:特在此记

Asp.Net MVC5入门学习系列⑤

原文:Asp.Net MVC5入门学习系列⑤ 检查VS生产的编辑方法和编辑窗体      前面我们一步使用强类型,然后创建Controller(控制器)的时候,VS默认已经给我们把CURD都简单的实现了.这篇的话就简单的看下它默认实现的代码,VS终归强大,但是方便的同时也是在弱化我们,当然大牛级别的这样搞是为了效率,我们新手的话还是建议不要去偷那个懒,至于为什么?不解释啦.....    我们打开我们的创建的实体对象Movie类,然后再ReleaseDate属性上添加一些标识特性,具体如下:  

ASP.NET MVC5添加验证(4)_实用技巧

有时候我们网站需要添加验证,这一节我们演示下怎样使用ASP.NET MVC5添加验证. 1.在Model类里面添加验证,代码如下: public class Movie { public int ID { get; set; } [StringLength(60,MinimumLength=3,ErrorMessage="主题的长度必须在3到60个字符")] public string Title { get; set; } [Display(Name="Release Da

ASP.NET MVC5网站开发用户注册(四)_实用技巧

一.默认Web项目的更改 用户这部分还是自己做,所以删除自动生成的用户相关代码. 二.添加Member区域 在web项目上点右键 添加 区域Member. 添加Home控制器,选择MVC5控制器-空 我们给public ActionResult Index()添加一个视图,代码很简单就是显示下用户名 @{ ViewBag.Title = "会员中心"; } <h2>欢迎你!@User.Identity.Name </h2> 我们先运行一下,出错啦. 这是因为项目

Asp.Net MVC5入门学习系列⑦

原文:Asp.Net MVC5入门学习系列⑦ 接着上篇结尾所说,如果开发中刚才遇到Model需要添加或者减少字段/属性的话,但是刚好你也利用EF的Code frist通过Model生存的数据库,这时改怎么办?   添加一个字段   我们现在要给Movie实体模型类添加一个评价的字段该怎么搞!我们知道我们默认使用EF code frist生存的数据库是同步性的,这样才能便于我们更好的开发,如果实体模型和数据库不同步的话,实体框架应该会抛出异常.  code frisr设置模型库迁移  在VS里我们

ASP.NET MVC5网站开发管理列表、回复及删除(十三)_实用技巧

一.管理列表跟上次我的列表相似,直接贴代码了. 首先打开Consultation控制器,添加ManageList方法 /// <summary> /// 咨询管理 /// </summary> /// <returns></returns> public ActionResult ManageList() { return View(); } 添加返回json数据的ManageJsonList public JsonResult ManageJsonList

ASP.NET MVC5 网站开发框架模型、数据存储、业务逻辑(三)_实用技巧

前面项目的层次和调用关系都说明了,关系如下图 采用三层架构的时候,研究过BLL层的必要性,觉得业务逻辑完全可以在controller里实现,没有必要单独做一个项目,另一个分层多了会影响性能.后来我还是把业务逻辑独立出来,原因如下: 业务逻辑写进controller里代码看着比较混乱,时间久了代码容易理不清. 在controller里直接写逻辑重复代码会不较多,开发效率低. 分项目有利于代码重用,有时候可以直接拿到其他项目中稍作修改就可以用. 对于性能我觉得分层多了肯定会有影响,但是不会很大.现在

omain oute-关于Asp.Net MVC5 Area 路由规则问题

问题描述 关于Asp.Net MVC5 Area 路由规则问题 请教一个mvc 路由的问题,我现在遇到一个路由规则的问题, 主站点域名domain.com和www.domain.com, area下有几个子站点, A目录-->a.domain.com, B目录-->b.domain.com, C目录-->c.domain.com, 并且a.domain.com还有3级域名,根据登录用户去区分, 比如X用户就是x.a.domain.com, Y用户就是y.a.domain.com,请问这样

mvc-关于ASP.NET MVC5的新手问题

问题描述 关于ASP.NET MVC5的新手问题 我进这个Login页面是为了用户登录的,红框下有了一个带model参数的Login,那个才是我要调用的,但第一次进Login页面时是没有参数的,系统会默认调用Login()这个函数.这个能有办法去掉吗?public ActionResult Login() { return View(); } 我做了如下修改:1.删了public ActionResult Login()2.添加了[HttpGet] 但页面超链接user/login点击后页面没显