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中是$+
,我不确定