我需要通过此链接发送我从模型中收到的值,proposalName字段必须是引号。我该怎么办?
这是我的服务网址。
string path = string.Format("{ProposalId:{proposalId},ProposalName:{"proposalName"},VendorId:{vendorId}}",
Uri.EscapeDataString(proposalId.ToString()),
Uri.EscapeDataString(proposalName),
Uri.EscapeDataString(vendorId.ToString()));
答案 0 :(得分:4)
你可以通过转义引号来简单地引用引号,就像这样 -
string path = string.Format("{{0},ProposalName:\"{1}\",VendorId:{2}}",
Uri.EscapeDataString(proposalId.ToString()),
Uri.EscapeDataString(proposalName),
Uri.EscapeDataString(vendorId.ToString()));
根据您更新的问题,如果您需要在网址中传递双引号,则需要将其编码为%22
您还可以使用URI
,这可以让网址具有很大的灵活性。例如 -
Uri myUri = new Uri("http://google.com/search?hl=en&q=\"query with quotes\"");
继续您的示例 - 将EscapeDataString
替换为Uri.EscapeUriString
。它将转义字符以形成有效的URL。 "
将替换为%22
答案 1 :(得分:1)
你的问题在{"1"}
部分完全正确。双引号"
应位于{}
之外,而不在其中。
这是固定代码。
string path = string.Format("{{0},ProposalName:\"{1}\",VendorId:{2}}",
Uri.EscapeDataString(proposalId.ToString()),
Uri.EscapeDataString(proposalName),
Uri.EscapeDataString(vendorId.ToString()));
或
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())}";
答案 2 :(得分:1)
这可能会为你做到这一点
\"{1}\"
而不是
{"1"}
因为您可以放置\
符号来表示转义序列,后跟保留字符
所以
string.Format("{{{0},ProposalName:\"{1}\",VendorId:{2}}}",
答案 3 :(得分:0)
我认为转义引号并将它们放在括号之外会起作用:
"{{0},ProposalName:\"{1}\",VendorId:{2}}"
根据C#版本,您也可以这样做,我通常认为这是一种更简单,更清洁的方式:
string path = $"{proposalId},ProposalName:\"{proposalName}\",VendorId:{vendorId}";
答案 4 :(得分: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}
,双'{{'
和三倍'}}}'
。格式化时,您必须使用数字作为占位符:因此{"proposalName"}
必须更改为{0}