2016-09-11 75 views
0

可有人请向我解释为什么这条线路:多参数的路由不匹配

routes.MapRoute(
    "ListingDetails", 
    "{city}-{propertyType}-for-sale-MLS-{mlsId}", 
    new {controller= "Search", action="Details"} 
    ); 

不匹配这个动作:

public async Task<IActionResult> Details(int mlsId, string city, string propertyType, string mls) 
     { 
      var listing = _listingService.GetListingByMlsId(mlsId); 
      return View(listing); 
     } 

我列为第一个途径,所以捕捉它之前没有任何路线。而不是匹配我刚刚得到搜索/详细信息?mlsId = ... & propertyType = ...

回答

1

mls参数是罪魁祸首。您应该能够通过指定一个默认值到mls参数来解决它:

public async Task<IActionResult> Details(... string mls = "something") 

或者在路由定义了默认值:

new {controller= "Search", action="Details", mls="something"}