ASP.NET MVC中创建自定义路由约束

创建一个路由约束(C#)

你能够使用路由约束来限制匹配一个特殊路径的浏览器请求。你能够使用一 个正则表达式来制定一个路由约束。

例如,假设你已经定义路由如下:

Listing 1 - Global.asax.cs

routes.MapRoute(

   "Product",

   "Product/{productId}",

   new {controller="Product", action="Details"}

);

Listing 1 包含一个命名为Product的路由. 你能够使用这个 Product route来将将浏览器请求映射到ProductController,如下:

Listing 2 - Controllers\ProductController.cs

using System.Web.Mvc;

namespace MvcApplication1.Controllers

{

   public class ProductController : Controller

   {

       public ActionResult Details(int productId)

       {

           return View();

       }

   }

}

注意:Details() action 接收一个命名为 productId的单一参数. 这个参数是整型参数.

在 Listing 1 will中定义的route将匹配一下的任何一个URLs:

?/Product/23

?/Product/7

遗憾的 ,这个route也同样匹配以下的URLs:

?/Product/blah

?/Product/apple

时间: 2024-08-31 03:33:13

ASP.NET MVC中创建自定义路由约束的相关文章

在ASP.NET Atlas中创建自定义的Behavior

asp.net|创建 English Version: http://dflying.dflying.net/1/archive/120_build_your_own_behaviors_in_aspnet_atlas.html Atlas中的Behavior定义了当控件的某个事件被触发时的行为.Behavior可以看作是一种封装了的DHTML的事件,例如click和hover等.Behavior同样可以是一个组件,可被attach到某个Atlas客户端控件上,以提供这个Atlas客户端控件更高

在ASP.NET Atlas中创建自定义Behavior

asp.net|创建 Atlas中的Behavior定义了当控件的某个事件被触发时的行为.Behavior可以看作是一种封装了的DHTML的事件,例如click和hover等.Behavior同样可以是一个组件,可被attach到某个Atlas客户端控件上,以提供这个Atlas客户端控件更高级,更丰富的功能,例如一些复杂的拖放(drag & drop),自动完成,浮动等功能.Behavior将被定义在某个Atlas控件的behaviors集合中. 从Atlas文档以及源文件中,我们可以知道Atl

在ASP.NET MVC中通过URL路由实现对多语言的支持

对于一个需要支持多语言的Web应用,一个很常见的使用方式就是通过请求地址来控制界面呈现所基于的语言文化,比如我们在表示请求地址的URL中将上语言文化代码(比如en或者en-US)来指导服务器应该采用怎样的语言来显示界面的内容.对于一个ASP.NET MVC应用来说,我们很容易通过URL路由来实现这样一个功能. 在具体介绍实现之前,我们通过一个简单的例子谈谈最终实现的效果.在通过ASP.NET MVC项目模板创建的空Web应用中,我们创建了如下一个HomeController,默认的Action方

在ASP.NET Atlas中创建自定义的Transformer

asp.net|创建 English Version: http://dflying.dflying.net/1/archive/110_build_your_own_transformers_in_aspnet_atlas.html ASP.NET Atlas中的绑定(binding)是一种将两个对象连接起来的强大方法.(您可以参考http://dflying.cnblogs.com/archive/2006/04/04/366900.html得到更多关于绑定的信息.)Atlas绑定会自动将源

在ASP.NET Atlas中创建自定义Action

asp.net|创建 Action是ASP.NET Atlas中继承于Sys.Action基类的的一类组件,用来实现一类由某个事件引发的事件处理功能.Action与事件处理函数的功能类似,但它是一类泛化了的事件处理组件,用来描述一些常见的,通用的事件处理方法,例如调用某个方法,设定某个对象的某个属性,引发一个PostBack等. 我们都知道,目前为止,Atlas最好的参考手册就是它的源代码.我们可以从源代码中找到如下三种Atlas的内建Action,他们都继承于Sys.Action基类: Sys

asp.net mvc中的自定义js验证问题

问题描述 mvc视图中的TextBoxFor,我在对应的model属性中加主了必须是数字的验证特性.而在view中我需要一个js函数来验证TextBox输入的数据(验证必须输入100的倍数等这些规则),我是在TextBox的onchange事件上调用这个验证js.现在的问题是,调用完onchange事件后,不管验证是否成功,都要继续去验证输入的是否是数字(model中属性设定的验证特性).我现在想做的效果是如果js验证不通过就不执行model中的验证了,直接显示js验证的错误结果.如果js验证通

ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)

ASP.NET MVC通过Model验证帮助我们很容易的实现对数据的验证,在默认的情况下,基于ValidationAttribute的声明是验证被使用,我们只需要将相应的ValidationAttribute应用到Model的类型或者属性上即可.对于自定义验证,我们也只需要定义相应的Validation就可以了,不过服务端验证比较简单,而客户端验证就要稍微复杂一些,本文提供一个简单的实例说明在ASP.NET MVC中实现自定义验证的基本步骤.[源代码从这里下载] 一.AgeRangeAttrib

Asp.net Mvc Framework 十一 (自定义Helper在MVC中的使用)

Monorail中的Helper是绑定在Controller上的 形如: [Helper(typeof(ChHelper))] abstract public class BaseBlockController : SmartDispatcherController{ }但本身Helper是使用在View中的,所以 Monorail这种定义方式 略微违背了分离之道 那么Asp.net MVC中是如何绑定自定义的Helper的呢? 其实Asp.net MVC的View也有代码文件即类似 index

PHP中的自定义路由使用小结

简介 我手上有个用PHP写的网站,类似于个人测试性质的站点,我独立设计,在这过程中犯了所有可能的设计和编程上的错误,同时我也收获了很多,这也促使 我去学习PHP和MySQL.每当我学习新的技术或web实践时,都会想到我的网站会从中得益.正如你可以想象到的,它的可读性不强.测试网站往往在代码 可读性和可维护性方面表现糟糕,尤其当你仅仅因为某些必要的功能而学习一门编程语言时,而这也正是我一直以来学习PHP的方式. 自从了解了ASP.NET MVC,我便思考如何在这个网站上实践这套MVC模式.我喜欢这