在我的API,我想有一個像GET /api/v1/widgets/1,2,3
和GET /api/v1/widgets/best-widget,major-widget,bob-the-widget
綁定/動作/ 1,2,3列出<int>
public class WidgetsController : MyApiController
{
public ActionResult Show(IEnumerable<int> ids)
{
}
public ActionResult Show(IEnumerable<string> names)
{
}
}
路線我設置了路線,讓我的動作,但我無法弄清楚如何將1,2,3
變成new List<int>(){1, 2, 3}
等等。當然,我可以採取一個string
並解析它在我的行動,但我想避免走這條路。我想到的一件事是在OnActionExecuting
方法中加入了一些東西,但是我不確定在那裏放置什麼東西(顯然我可以一起破解一些東西,但是我正在嘗試寫一些可重用的東西)
我的主要問題是如何知道我是否需要做任何事情(有時ValueProviders上游會計算出所有東西),以及如何處理計算出的類型(例如,如何處理我知道在這種情況下,我需要去一個整數或字符串集合,然後我該怎麼做?)
順便說一下,我有想法實現一個ValueProvider
也是如此,但在類似的問題上迷失了方向。
太好了,謝謝,這就是我一直在尋找的東西。這也應該對我想要做的其他事情有所幫助,例如支持矩陣參數。 – notJim 2011-03-08 14:43:39
剛剛試過這個,它似乎在游泳。我對你的代碼做的一個修改是改變'.GetValue'調用來使用'bindingContext.ModelName'而不是硬編碼名字。我建議編輯你的答案。 – notJim 2011-03-10 01:54:58