【问题标题】:MVC QueryString parameters suddenly not reading after &MVC QueryString 参数在 & 之后突然不读取
【发布时间】: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


【解决方案1】:

嗯,我从来没有弄清楚是什么导致 URL 编码为 HTML,但我通过关闭 SendGrid 中的点击跟踪来修复它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-16
    • 2012-12-27
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 2010-12-02
    相关资源
    最近更新 更多