标题有点误导,这是我的情况:使用邮递员,我可以调用以下 url 发布帖子,我的函数可以工作:
http://localhost/odataservice/odata/Evaluations(9)/CreateEmptyForm
为了让它工作,我必须在正文部分发送以下内容:
{
"@odata.type": "#Common.Data.Client",
"ClientId": 1
}
当我尝试在我的 asp.net mvc 应用程序中复制它时,我的问题就出现了。在那里,我在做
public int CreateRvaForm(int clientId, int evalId, int type)
{
var key = Task.Run(async () =>
{
var data = await
client
.For<Evaluation>(Constants.DataService.PLURAL_EVALUATIONS)
.Key(evalId)
.Function( type==0 ? Constants.DataService.FUNCTION_CREATE_RVA_EMPTY : Constants.DataService.FUNCTION_CREATE_RVA_DUPLICATE)
.Set( new{ClientId=clientId} )
.ExecuteAsScalarAsync<int>();
return data;
}).GetAwaiter().GetResult();
return key;
}
这里,变量 client 是 Simple.Odata.Client 对象。
我得到的错误与找不到路线有关;调试向我显示该库正在尝试执行 url
http://localhost/odataservice/odata/Evaluations(9)/CreateEmptyForm(clientId=XX)。我无权修改 odata 服务。