2

我在 ASP .NET MVC 2 项目中使用RestSharp 。尝试创建 RestRequest(使用 POST 方法)并将两个枚举值(我的枚举类型——OrderStatusFlags)添加到请求正文——使用内置的 RestSharp XmlSerializer:

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

但是在请求参数中调用 AddBody 方法后只能看到空而没有值。并且在调用 MVC 操作方法时发生错误:

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

枚举看起来像这样:

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

有没有人发生过类似的情况?

4

1 回答 1

4

这里有几个问题。首先,您只能调用AddBody()一次,否则最后一次调用将优先。AddBody()也仅用于发送 XML 作为请求正文。您需要发送到该 URL 的所需 XML 模式是什么?您可以发布一些您尝试生成的示例 XML 吗?

我认为您实际上更可能想要使用AddParameter()添加一些 POST 参数,因为这比 XML 请求正文更常见。

于 2010-10-05T18:56:44.320 回答