我想将一些JSON数据传递给我的控制器,但也是一个用于识别类型的字符串。我想知道我是否可以创造这样的东西:
[HttpPost]
public void Write(string documentType, string jsonData)
{
...
我有一个这样的方法,但当我尝试从另一个应用程序执行此操作时:
// packageObject is an instance of my object I want JSON serialized
response = await client.PostAsJsonAsync("EdiDocument/Write?documentType=211", packageObject);
我明白了:
StatusCode:404,ReasonPhrase:'Not Found'
这是我能做的吗?
答案 0 :(得分:1)
可以这样想,你有一个端点地址(例如Mongodb C# driver doc)和一个有效载荷(在你的情况下,有效载荷是json)。如果你想传递信息,它必须适合其中一个......你可以通过(1)使用端点地址中的附加参数来完成你想要的任务,或者只是(2)将新值添加为属性你的json有效载荷。
对于选项1,您可以使用以下内容:
[HttpPost]
[Route("{docType}"]
public void Write(string docType, string jsonData) {....}
这意味着你的终点会改变为:
http://yourserver/yourapp/yourcontroller/docTypeGoesHere
选项2只是展开你的json对象以包含另一部分信息。换句话说,添加一个' documentType' jsonData对象的属性。
我猜你是不是试图不修改json对象的结构,这会留给你选项1.