本文介绍了C#3.5 MVC2路由跳过可选参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在这里,我有:

  routes.MapRoute(
    测试,//路线名称
    数据仓库/分销/ {类别} / {}系列号,
    新{控制器=数据仓库,
          行动=分配,
          类别= UrlParameter.Optional,
          系列号= UrlParameter.Optional}
);

类别和系列号都是可选的PARAMS。当路由这样的:数据仓库/分销/ 123 ,它总是把123作为类别值。

我的问题是如何能够让它知道第一个参数可以是类别或系列号,即数据仓库/分销/ {类别} 数据仓库/分销/ {系列号}


解决方案

 数据仓库/分销/ {类别} / {}系列号

只有最后一个参数可以是可选的。在这个例子中类不能是可选的,原因很明显。

Here I have:

routes.MapRoute(
    "test", // Route name
    "DataWarehouse/Distribution/{category}/{serialNo}",
    new { controller = "DataWarehouse", 
          action = "Distribution", 
          category= UrlParameter.Optional, 
          serialNo = UrlParameter.Optional } 
);

Category and serialNo are both optional params. When the routing is like: DataWarehouse/Distribution/123, it always treat 123 as the value for category.

My question is how I can make it to know the 1st param could be either category or serialNo, i.e. DataWarehouse/Distribution/{category} and DataWarehouse/Distribution/{serialNo}.

解决方案
DataWarehouse/Distribution/{category}/{serialNo}

Only the last parameter can be optional. In this example category cannot be optional for obvious reasons.

这篇关于C#3.5 MVC2路由跳过可选参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-21 03:22