ASP.NET MVC – 提取URL的参数

我试图提取我的url的参数,就像这样。

/行政/客户/编辑/ 1

摘录: 1

/pipe理/产品/编辑/ 18?允许=真

摘录: 18?allowed = true

/pipe理/产品/创build?允许=真

摘录: ?allowed = true

有人可以帮忙吗? 谢谢!

更新

RouteData.Values["id"] + Request.Url.Query 

将匹配你所有的例子


目前还不完全清楚你想达到什么目的。 MVC通过模型绑定为您传递URL参数。

 public class CustomerController : Controller { public ActionResult Edit(int id) { int customerId = id //the id in the URL return View(); } } public class ProductController : Controller { public ActionResult Edit(int id, bool allowed) { int productId = id; // the id in the URL bool isAllowed = allowed // the ?allowed=true in the URL return View(); } } 

在默认情况下将路由映射添加到global.asax.cs文件将处理/ administration / part。 或者你可能想看看MVC领域。

 routes.MapRoute( "Admin", // Route name "Administration/{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 

如果是之后的原始URL数据,则可以使用控制器操作中可用的各种URL和请求属性之一

 string url = Request.RawUrl; string query= Request.Url.Query; string isAllowed= Request.QueryString["allowed"]; 

这听起来像Request.Url.PathAndQuery可能是你想要的。

如果您想访问您可以使用的原始发布数据

 string isAllowed = Request.Params["allowed"]; string id = RouteData.Values["id"]; 
 public ActionResult Index(int id,string value) 

这个函数从URL获取值然后你可以使用下面的函数

Request.RawUrl – 返回当前页面的完整URL

RouteData.Values – 返回URL的值的集合

Request.Params – 返回名称值集合

您可以将这些参数列表作为键值对在ControllerContext.RoutValues对象中获取。

您可以将其存储在某个variables中,并在逻辑中使用该variables。

为了得到你的参数的值,你可以使用RouteData。

更多的上下文将是很好的。 为什么你需要“提取”他们呢? 你应该有一个像这样的Action: public ActionResult Edit(int id, bool allowed) {}

我不熟悉ASP.NET,但我想你可以使用split函数使用/ as分隔符将其拆分成数组,然后抓取数组中的最后一个元素 (通常是数组长度为-1)以获取提取你要。

好吧,这似乎并不适用于所有的例子。

那么正则expression式呢?

 .*(/|[a-zA-Z]+\?)(.*) 

然后得到最后一个子expression式(.*) ,我相信它在.Net中是$+ ,我不确定