【问题标题】:How to write a list in the URL and pass it to an MVC controller in ASP.NET如何在 URL 中编写列表并将其传递给 ASP.NET 中的 MVC 控制器
【发布时间】:2012-05-19 02:30:06
【问题描述】:

我需要能够在映射到控制器的 URL 中编写列表,然后控制器在列表中执行某些操作。举个例子:

我去 http://localhost:8080/API/ControllerID/Action/a,b,c,d

我想将其解析为如下所示的控制器:

public ActionResult Action(List<string> ListItems)
{
    // do something on the list
}

地图路线看起来像这样:

context.MapRoute(
     "ListActions",
     "API/{controller}/{action}/{ListItems}",
     new { controller = "", action = "", ListItems = ""}
);

这可能吗?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-routing url-routing


    【解决方案1】:

    是的,可能。使用不同的分隔符,例如“-”,只要不破坏逻辑。 在控制器中,您可以通过 String.Split 拆分字符串。

    【讨论】:

      【解决方案2】:

      请不要那样做,请!从安全角度来看,拥有或让长 URL 根本不安全 + IIS 将/可以限制它。

      【讨论】:

      • 为什么不呢?如果想同时展示我的 eshop 商品的两个类别怎么办?鞋帽。不安全吗?它对最终用户来说更具可读性。
      • 它用于内部 API,仅供受信任的来源使用,带有机器生成的 URL。因此,在应用程序的这一部分中,安全性不是问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 2016-03-17
      • 2016-10-13
      • 1970-01-01
      相关资源
      最近更新 更多