【问题标题】:Getting 405 Method Not Allowed on a GET在 GET 上不允许使用 405 方法
【发布时间】:2011-09-21 22:04:38
【问题描述】:

在我的 webapp 中单击以下链接会产生 405:

<a href="/unsubscribe/confirm?emailUid=<%= ViewData["emailUid"] %>&hash=<%= ViewData["hash"] %>" class="button">Yes, unsubscribe me.</a>

这是从取消订阅控制器调用的确认操作:

    [HttpGet]
    public ActionResult Confirm( string emailUid, string hash)
    {
        using ( UnsubscribeClient client = new UnsubscribeClient() )
        {
            UnsubscribeResponse response = client.Unsubscribe( emailUid, hash );
            return View( response );
        }

    }

简单的东西。当我 F5 时它可以工作,但是当我在 IIS(7.5 和 6)中托管它时,我得到了错误。

我很迷茫。我已经搜遍了网络,但似乎找不到任何原因来解释为什么会发生这种情况。

【问题讨论】:

  • 您是否尝试将数据转换为字符串? (string)ViewData["emailUid"] ?

标签: c# .net asp.net-mvc asp.net-mvc-2 iis-7.5


【解决方案1】:

<%= Html.ActionLink(
    "Yes, unsubscribe me.",
    "Confirm", 
    "Unsubscribe", 
    new { emailUid = ViewData["emailUid"], hash = ViewData["hash"] }, 
    new { @class = "button" }
) %>

还有ViewData?!请删除它以支持强类型视图和视图模型。每次看到有人使用ViewData,我都觉得有必要这么说。

【讨论】:

    【解决方案2】:

    锚中实际呈现的 HTML href 是什么?生成的 URI 是否有效?

    是否将其更改为这项工作:

     <%= Html.ActionLink("Yes, unsubscribe me.", "Confirm", "Unsubscribe", new { emailUid= ViewData["emailUid"], hash = ViewData["hash"]})%>
    

    【讨论】:

      【解决方案3】:

      确保输出的 URL 有效并且任何无效字符都被正确转义,例如确保 &amp;amp; 被转义为 &amp;amp;

      【讨论】:

        【解决方案4】:

        如果您的emailUidhash 中有句点,则需要对其进行编码。这不是唯一有问题的角色,但我怀疑这里就是这种情况。在将这些值连接到 URL 之前,对这些值使用 HttpUtility.UrlEncode

        为什么是 405?可能是因为假定的“文件扩展名”在 IIS6 中没有脚本映射。它根本不是文件扩展名,但如果不对 URL 中的句点进行编码,它就不会更好。

        【讨论】:

          【解决方案5】:

          好吧,我发现了我的问题。原来是我的 IIS 配置有问题。在 IIS 6 中,我不允许在目录中执行脚本,因此我的 .svc 永远不会为我的服务主机运行。更改该设置后,我不再收到 405 错误...

          非常感谢其他答案。我一定会使用 Html 助手。

          【讨论】:

            猜你喜欢
            • 2013-03-23
            • 1970-01-01
            • 2017-11-13
            • 2016-01-31
            • 1970-01-01
            • 1970-01-01
            • 2021-11-24
            • 2015-03-16
            • 1970-01-01
            相关资源
            最近更新 更多