【发布时间】:2018-08-27 18:07:08
【问题描述】:
这种接收新邀请的方法一直有效。今天早上突然不行了。调试显示方法不接&
这是网址(注意&的参数划分):
http://localhost:1212/Account/HandleInvitation?guid=56cfbb11-6507-4cf4-aecf-a58f3e1a37a8&email=email@address.com&usertype=Vendor&vendorid=0
这是方法sig:
[AllowAnonymous]
[HttpGet]
public ActionResult HandleInvitation(string email, string guid, UserType userType = UserType.None, int vendorId = 0)
{
结果是 'guid' 被设置,因为它在 url 中是第一个...第一个 & 之后的所有内容都被忽略。传入来自 SendGrid,我无法确定它们是否一直看起来像这样,或者编码的 & 符号是否最近发生了变化。
我知道我可以在方法的第一行手动解码或解析 URL,但我担心某处发生了更改,这可能是任何其他 url 编码参数的系统范围问题。
所以我的问题是:是否有某个设置会影响到这一点,我该如何解决它,以便像以前一样正确分配参数?
谢谢
【问题讨论】:
-
&是 HTML 转义码。它不应出现在 URL 中。 -
哦,好吧……这很奇怪。 SendGrid 必须对电子邮件进行编码,包括“接受邀请”按钮 url
-
您的电子邮件是 HTML 格式还是纯文本格式?电子邮件客户端将解码 HTML。
标签: c# asp.net-mvc url