2013-02-06 157 views
2

在定義路由的MVC 4應用程序中,我可以提供默認參數列表。我應該爲可選參數提供什麼值:UrlParameter.Optional空字符串MVC 4默認參數值

實例:

routes.MapRoute("simple", "{controller}/{action}/{id}", 
    new {controller = "Home", action = "Index", id = UrlParameter.Optional}); 
routes.MapRoute("simple", "{controller}/{action}/{id}", 
    new {controller = "Home", action = "Index", id = ""}); 

是否有在上述實施例和id = ""id = UrlParameter.Optional之間的任何差異?

請注意,一些控制器操作將使用id(類型string),其中一些將是無參數的。

回答

4

的區別是微妙的,但幾乎不重要

UrlParameter.Optional表示空將被傳遞到操作方法代替的價值。

id = ""表示默認值「」(不爲空)將傳遞給操作方法。

在這兩種情況下,在路由中不包含id參數都不會阻止MVC框架找到正確的方法。

UrlParameter.Optional的情況下,你應該讓所有聽上去很像操作方法需要一個可空參數

類型事項

你不應適用於id=""使用整數路線。

+2

同樣重要的是隻有列表中的最後一個參數可以有一個默認值'UrlParameter.Optional' –

+0

@四十二,好點 –

+1

@DaveA,非常感謝您的澄清! – Alexandar