我使用 RestSharp 在ASP .NET MVC 2项目。试图创建RestRequest(使用POST方法),并添加两个枚举值(我的枚举类型 - OrderStatusFlags)到请求机构 - 使用内置的RestSharp XmlSerializer的:

var request = new RestRequest("orders/{vendorID}/{number}", Method.POST);
request.AddBody(previousOrderStatus);
request.AddBody(newOrderStatus);

但是调用请求参数AddBody方法后可以看到只有空的,但没有任何值。并且在调用MVC的操作方法中发生错误:

参数字典包含参数方法的空条目非空类型 'OrderStatusFlags' 的 'previousStatus' 'RestResponse PostOrderStatus(的Int32,System.String,OrderStatusFlags,OrderStatusFlags)' 在 'OrdersResourceEndpoint'。一个可选的参数必须是引用类型,可空类型,或声明为一个可选参数。 参数名称:参数

枚举看起来像这样:

public enum OrderStatusFlags : long
{
    Pending,
    Confirmed,
    ...
}

是否有人发生一个类似的情况呢?

有帮助吗?

解决方案

一对夫妇在这里的问题。首先,你只能叫AddBody()一次或最后一次通话将优先考虑。 AddBody()也只有用于发送XML作为请求体。什么是所需的XML模式,你需要发送到该网址是什么?你可以张贴一些示例XML,你想生成?

我觉得更有可能你真的想使用AddParameter()添加一些POST参数,因为这是更为常见比XML请求主体。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top