作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图为具有一组同质参数的资源创建路由。
URL 如下所示:
产品/类别/{categoryId1}/{categoryId2}/.../brand/{brandID1}/{brandID2}/...
并且希望一个 Action 方法看起来像这样:
public ActionResult GetProducts(IList categoryID, ILIsts brandID)
{...}
其中类别和品牌是独立的过滤器。
我找到了类似任务的解决方案:
ASP.NET MVC 2 Parameter Array
并且想知道是否没有更漂亮的解决方案可以使用这个原型(prototype)
public ActionResult GetProducts(IList categoryID)
代替
公共(public) ActionResult myAction(字符串 url)
Action 方法
-- 避免拆分字符串和强制转换?
我怎样才能使这个解决方案适合我的情况?
提前谢谢大家!
最佳答案
使用自定义处理程序,如我在 this answer 中发布的处理程序.
可能需要一些调整,但这样的事情应该可以工作:
public class ProductsRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
IRouteHandler handler = new MvcRouteHandler();
var vals = requestContext.RouteData.Values;
vals["categoryID"] = vals["categories"].Split("/");
vals["brandID"] = vals["brands"].Split("/");
return handler.GetHttpHandler(requestContext);
}
}
// in the route:
routes.MapRoute(
"test",
"products/category/{*categories}/brand/{*brands}",
new { Controller = "product", Action = "getproducts"}
).RouteHandler = new ProductsRouteHandler ();
关于asp.net - 具有同质参数数组的 MVC 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3874625/
我是一名优秀的程序员,十分优秀!