标题有点误导,这是我的情况:使用postman,我可以调用下面的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对象。
我收到的错误与路由未找到有关;debug显示库正在尝试执行url
http://localhost/odataservice/odata/Evaluations(9)/CreateEmptyForm(clientId=XX)。我没有修改odata服务的权限。
发布于 2018-03-26 19:12:46
根据this text (“执行函数和动作”),您应该尝试使用Action而不是Function,因为action是基于POST的调用,而function则转换为HTTP GET
https://stackoverflow.com/questions/47184790
复制相似问题