0
我正在嘗試使用實體框架構建OData端點。路由工作正常。Json參數始終爲空
我在我的控制器中有一個post方法,post請求可以正確路由,但是即使我傳遞參數(使用Fiddler 4)它也會收到null參數。
我控制器的方法是:
[HttpPost,EnableQuery]
public IHttpActionResult GetConfig_Post(ODataQueryOptions<GetConfig_Result> options, ODataActionParameters parameter)
{ ... }
的ODataActionParameters參數始終是空的。
路由代碼:
public override string SelectAction(ODataPath odataPath, HttpControllerContext controllerContext, ILookup<string, HttpActionDescriptor> actionMap)
{
if (odataPath != null && odataPath.PathTemplate == "~/entityset/action")
{
var segment = odataPath.Segments.First() as EntitySetPathSegment;
string typeName = segment.EntitySetName;
if (controllerContext != null && (segment != null && controllerContext.Request.Method == HttpMethod.Post))
{
if (typeName == "Config")
{
return "GetConfig_Post";
}
}
}
我找不到爲什麼下面的POST請求與空參數處理的原因。 [請求如在提琴手,HTTP版本設置爲1.1]
User-Agent: Fiddler
Content-Type: application/json
Host: localhost:52673
Content-Length: 36
Data:
{"id":"21"}
frombody與您認爲提交表單的位置相關。 –
@AmitKumarGhosh - 不正確時,它在綁定來自Ajax POST請求的數據時也被廣泛使用。它仍然是HTTP POST。 – Kamo
我在建立WebApi和使用$ .ajax的同時還沒有使用這個屬性。完美的作品。 –