2017-05-24 86 views
-1

我正在VS.NET 2015中的Asp.NET核心工作。Asp.NET核心路径字符串

我想获取URL中的最后一个目录。

我目前使用的是string path = Context.Request.Path;,例如,如果我的网址是localhost.foo.com/bar/3,它会返回/bar/3,有没有办法只得到3?在我的情况下,3将是一个对象的ID。

如果没有,是否有更好的方法来返回在URL中使用的对象的ID?

回答

0

YPU可以通过/分割你的串并获得最后一个元素:

string path = Context.Request.Path; 
var lastValue = path.Split('/').Last(); 
1

你应该为了做到这一点使用路​​由参数:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing

如果你有下面的代码:

routes.MapRoute(
    name: "default", 
    template: "{controller=Home}/{action=Index}/{id?}"); 

your con troller功能可以采取像一个参数:

public IHttpActionResult myFunc(int id) 

如果这条路模板不符合你的情况,你可以增加额外的路由模板,以便在参数映射,或者你可以添加自定义路由属性在你的函数中获取你正在查找的参数。

+0

我有路由参数,我在我的控制器中有一个IActionResult方法需要两个ID作为参数,我只是试图从URL中获取Id以将它们传递给方法。 –

+0

如果您将它们作为路由参数,是否有一个原因让您无法从捕获它们的控制器方法中传递它们。如果我错过了某些明显的事情,我很抱歉。 –