2013-08-30 45 views
1

我創建了一個mvc4應用程序,我需要一個問號作爲動作/參數分隔符。該參數是可選的。MVC4? (Questionmark)as /(Slash)作爲/參數分隔符

www.mydomain.com?myParam

config.Routes.MapHttpRoute(
    "DefaultRoute", 
    routeTemplate: "{controller}/{action}?{*param}", 
    defaults: new { controller = "Index", action = "Index", param = UrlParameter.Optional } 
); 

怎樣的路徑應該是這樣做到這一點?

+0

自動提取查詢參數;你可以在路線中忽略它們。 – anaximander

回答

4

您可以像平常一樣構建您的URL(使用由?和&分隔的參數)。如果您定義了用斜槓分隔的任何參數,則意味着您希望URL更易於理解。

如果你希望你的URL是在一個標準的方式只是刪除param定義:

config.Routes.MapHttpRoute(
"DefaultRoute", 
routeTemplate: "{controller}/{action}", 
defaults: new { controller = "Index", action = "Index"} 
); 

現在,您可以添加儘可能多的PARAMS你想要的。
例如你的URL可以是這樣的:

Index/Index?param1=something&param2=something etc 

更新:

public class IndexController : ApiController 
{ 
    [HttpGet] 
    public IEnumerable<MyClass> Index(DateTime startDate, DateTime endDate) 
    { 
     IEnumerable<MyClass> data = GetSomeData(startDate, endDate); 
     return data; 
    } 
} 

看上面指定的路由可以這樣寫:

Index/Index?startDate=something&endDate=something 

而且該方法將被調用與這些參數。

+0

如何獲取參數? –

+0

你究竟是什麼意思? –

+0

犯了一個錯誤。謝謝你的幫助。 –

相關問題