【发布时间】:2021-08-06 08:04:09
【问题描述】:
我只是用 C# .NET Core v5 创建了一个简单的Insert API。
格式如:
{
groupname: string,
groupdescription: string,
filedirectory: string
}
在filedirectory 上,我必须输入E:\FilesDirectory\image.png 之类的值
但它向我显示了如下错误:
'U' is an invalid escapable character within a JSON string. The string should be correctly escaped.
U 是我尝试执行 API 的反斜杠后的字符。 E:\Unform\blahblachblah
API 代码:
public async Task<int> InsertUpdateProper(modelGroup modelGroup)
{
string SP = "sp_insertupdateGroup";
parameters.AddDynamicParams(modelGroup);
var result = await mySqlConnection.ExecuteAsync(SP, parameters, commandType: mysp);
return result;
}
上面会在Controller中调用。
有谁知道如何解决这个问题?
非常感谢。谢谢。
【问题讨论】:
-
当你说“我必须把值设置为” - 你不能修改它吗?用另一个反斜杠转义反斜杠似乎对我有用。
-
那么@TimothyG.,这个想法怎么样?它的值是一条路径。我该如何修改它?请告诉我,我不明白。
-
路径从何而来?它是由您的代码在某处产生的吗?如果是这样,无论发生什么,只需将其设为
E:\\FilesDirectory\\image.png- 您的 POST 正文表示它是一个字符串,而E:\\FilesDirectory\\image.png是一个有效字符串。您甚至不必在之后为 IO 操作取消转义它,因为它们接受它作为有效路径,这意味着Directory.CreateDirectory("E:\\FilesDirectory\\MyDirectory");将作为示例工作。 -
嗨 @TimothyG.,值来自使用我的 API 的前端。所以你的意思是,如果可能的话,前端应该抛出一个修改后的值(双反斜杠)?
-
@TimothyG.,你能发布你的答案吗?所以我可以接受。你的建议会很好。非常感谢。