请注意,我的问题与此问题类似,但由于我不知道如何在已接受的答案中添加评论以要求澄清,因此我必须创建一个新问题。
我有一个休息服务,类似这样:
namespace My.API
{
[Route("/event/{Id}", Verbs = "POST")]
public class EventRequest
{
public int Id { get; set; }
public string Content { get; set; }
}
public class EventService : Service
{
public object Post(EventRequest request)
{
// Do something with request.Content
}
}
}
当我使用以下表单数据发出发布请求时:
Content=%22this+is+a+%22+test
request.Content 包含
this is a " tes
请注意,缺少第一个双引号,并且缺少测试末尾的 t。
现在,上面链接的另一个问题中接受的答案说我们需要对字符串进行编码,但我想知道是否有任何方法可以改变它的行为。我正在尝试创建一个公共 api,如果 api 的客户端必须以某种方式对字符串进行编码,那么我认为这会导致错误。他们应该能够提供一个正常的字符串。
基本上,下面的 jQuery ajax 调用应该可以工作:
$.ajax({
url: "api/event/" + id,
type: "POST",
data: {Content : content}
});
其中 content 是原始/未编码的字符串,jQuery 将在传递给服务之前对其执行表单 url 编码。该服务应该只返回原始的原始字符串。