2017-05-24 72 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

如果您將它們作爲路由參數,是否有一個原因讓您無法從捕獲它們的控制器方法中傳遞它們。如果我錯過了某些明顯的事情,我很抱歉。 –