C#字符串格式错误
我需要通过此链接发送从模型收到的值,proposalName字段必须在引号中。我如何才能做到这一点 这是我的服务urlC#字符串格式错误,c#,C#,我需要通过此链接发送从模型收到的值,proposalName字段必须在引号中。我如何才能做到这一点 这是我的服务url string path = string.Format("{ProposalId:{proposalId},ProposalName:{"proposalName"},VendorId:{vendorId}}", Uri.EscapeDataString(proposalId.ToString()), Uri.E
string path = string.Format("{ProposalId:{proposalId},ProposalName:{"proposalName"},VendorId:{vendorId}}",
Uri.EscapeDataString(proposalId.ToString()),
Uri.EscapeDataString(proposalName),
Uri.EscapeDataString(vendorId.ToString()));
你的问题完全在
{“1”}
部分。双引号“
应该在{}
的外部,而不是内部。
这是固定代码
string path = string.Format("{{0},ProposalName:\"{1}\",VendorId:{2}}",
Uri.EscapeDataString(proposalId.ToString()),
Uri.EscapeDataString(proposalName),
Uri.EscapeDataString(vendorId.ToString()));
或
如果您使用的是C#6,那么您可以编写如下代码
string path = $"{Uri.EscapeDataString(proposalId.ToString())},ProposalName:\"{Uri.EscapeDataString(proposalName)}\",VendorId:{Uri.EscapeDataString(vendorId.ToString())}";
你的问题完全在
{“1”}
部分。双引号“
应该在{}
的外部,而不是内部。
这是固定代码
string path = string.Format("{{0},ProposalName:\"{1}\",VendorId:{2}}",
Uri.EscapeDataString(proposalId.ToString()),
Uri.EscapeDataString(proposalName),
Uri.EscapeDataString(vendorId.ToString()));
或
如果您使用的是C#6,那么您可以编写如下代码
string path = $"{Uri.EscapeDataString(proposalId.ToString())},ProposalName:\"{Uri.EscapeDataString(proposalName)}\",VendorId:{Uri.EscapeDataString(vendorId.ToString())}";
这可能对你有用
\"{1}\"
而不是
{"1"}
因为您可以将\
符号表示转义序列,后跟保留字符
所以
这可能对你有用
\"{1}\"
而不是
{"1"}
因为您可以将\
符号表示转义序列,后跟保留字符
所以
您可以通过转义引号来简单地放置引号,如下所示-
string path = string.Format("{{0},ProposalName:\"{1}\",VendorId:{2}}",
Uri.EscapeDataString(proposalId.ToString()),
Uri.EscapeDataString(proposalName),
Uri.EscapeDataString(vendorId.ToString()));
根据您更新的问题,如果您需要在URL中传递双引号,则需要将其编码为%22
您还可以使用URI
,这使得url具有很大的灵活性。例如—
Uri myUri = new Uri("http://google.com/search?hl=en&q=\"query with quotes\"");
继续您的示例-将EscapeDataString
替换为Uri.escapeUristing
。它将转义chracter以形成有效的URL<代码>“将被%22
一些建议和-您可以通过转义引号将引号括起来,如下所示-
string path = string.Format("{{0},ProposalName:\"{1}\",VendorId:{2}}",
Uri.EscapeDataString(proposalId.ToString()),
Uri.EscapeDataString(proposalName),
Uri.EscapeDataString(vendorId.ToString()));
根据您更新的问题,如果您需要在URL中传递双引号,则需要将其编码为%22
您还可以使用URI
,这使得URL具有很大的灵活性。例如-
Uri myUri = new Uri("http://google.com/search?hl=en&q=\"query with quotes\"");
继续您的示例-将EscapeDataString
替换为Uri.escapeUristing
。它将转义chracter以形成有效的URL。“
将被%22
替换
一些建议和-我认为避开引号并将其放在括号外会起作用:
"{{0},ProposalName:\"{1}\",VendorId:{2}}"
根据C#版本的不同,您也可以这样做,我通常认为这是一种更简单、更干净的方法:
string path = $"{proposalId},ProposalName:\"{proposalName}\",VendorId:{vendorId}";
我认为避开引号并将其放在括号外会起作用:
"{{0},ProposalName:\"{1}\",VendorId:{2}}"
根据C#版本的不同,您也可以这样做,我通常认为这是一种更简单、更干净的方法:
string path = $"{proposalId},ProposalName:\"{proposalName}\",VendorId:{vendorId}";
你有两个问题:
- 错误的引号(应在大括号
之外并转义){…}
- 不正确的
和{
转义:}
表示格式字符串中只有一个{{
{
string path = string.Format("{{{0},ProposalName:\"{1}\",VendorId:{2}}}",
请注意
- 在
{1}
- 三倍大括号
和{{{
}}
string format =
"http://mobile.teklifdosyam.com/VendorReport/GetListProposalService?&page=1&start=0&limit=10&filter=" +
"{{ProposalId:{0},ProposalName:\"{1}\",VendorId:{2}}}";
string path = string.Format(format,
Uri.EscapeDataString(proposalId.ToString()),
Uri.EscapeDataString(proposalName),
Uri.EscapeDataString(vendorId.ToString()));
请注意转义的引号\“
在{1}
之外,双引号{{{{code>和三引号}}}
。格式化时必须使用数字作为占位符:因此{“proposalName”}
必须更改为{0}
您有两个问题:
- 错误的引号(应在大括号
{…}
之外并转义)
- 不正确的
{
和}
转义:{{
表示格式字符串中只有一个{
应该是
string path = string.Format("{{{0},ProposalName:\"{1}\",VendorId:{2}}}",
请注意
- 在
{1}
- 三倍大括号
{{{
和}}
编辑:在编辑的问题中,您有相同的错误:
string format =
"http://mobile.teklifdosyam.com/VendorReport/GetListProposalService?&page=1&start=0&limit=10&filter=" +
"{{ProposalId:{0},ProposalName:\"{1}\",VendorId:{2}}}";
string path = string.Format(format,
Uri.EscapeDataString(proposalId.ToString()),
Uri.EscapeDataString(proposalName),
Uri.EscapeDataString(vendorId.ToString()));
请注意转义的引号\“
在{1}
之外,双引号{{{{{code>和三引号}}}
。格式化时必须使用数字作为占位符:因此{“proposalName”}
必须更改为{0}
@ozmert75-为您的更新问题编辑了我的答案。@ozmert75-为您的更新问题编辑了我的答案。