gpt4 book ai didi

asp.net - 具有同质参数数组的 MVC 路由

转载 作者:行者123 更新时间:2023-12-05 00:06:02 24 4
gpt4 key购买 nike

我试图为具有一组同质参数的资源创建路由。

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com