我有以下網址:不容MVC中的控制器讀取的OData
http://localhost:64863/api/Entity/getStatus?%24skip=0&%24top=25&%24inlinecount=allpages&_=1473445898026
我的問題是我怎麼能讀在控制器跳過和頂部。這是我的控制器簽名:
我有以下網址:不容MVC中的控制器讀取的OData
http://localhost:64863/api/Entity/getStatus?%24skip=0&%24top=25&%24inlinecount=allpages&_=1473445898026
我的問題是我怎麼能讀在控制器跳過和頂部。這是我的控制器簽名:
這是GET查詢字符串後,我加入了代碼:
private string getParameterFromUrl(string parameter)
{
string url = Request.QueryString.Value;
Match match = Regex.Match(url, parameter + "=([^&]*)");
return match.Result("$1");
}
如果參數是跳過或top
以下查詢字符串
%24skip=0&%24top=25
將Request.QueryString
使用下列按鍵可用:$skip
和$top
。您將無法將控制器參數名稱更改爲$skip
和$top
,因爲您將在Visual Studio中發生錯誤並且無法編譯,因此您可以刪除skip
和top
參數並獲取%24skip
和%24top
在您的控制器從Request.QueryString
值
[HttpGet("getStatus")]
public JsonResult GetStatus(
string filter)
{
string skip = string.Empty;
string top = string.Empty;
if (Request.QueryString["$skip"] != null)
{
skip = Request.QueryString["$skip"];
}
if (Request.QueryString["$top"] != null)
{
top = Request.QueryString["$top"];
}
// do whatever you want with skip and top variable
感謝您的回答,但是我收到以下錯誤:「無法將[]的索引應用於'QueryString'類型的表達式」。 –
這是ASP.NET MVC控制器還是ASP.NET Web Api控制器? – ekad
這是ASP.NET MVC控制器 –
如果你的URL是'/ getStatus?skip = 0&top = 25'而不是'/ getStatus?%24skip = 0&%24top = 25',那麼你應該可以讀取'skip'和您的控制器中的「頂部」。 – ekad
是的,它是真實的,但我不能更改網址,所以我需要做這個工作? –
爲了幫助其他人也閱讀這個問題,您使用的是哪個版本的ASP.NET MVC?我猜這不是MVC 5或以下? – ekad