C# GET上不允许获取405方法

C# GET上不允许获取405方法,c#,.net,asp.net-mvc,asp.net-mvc-2,iis-7.5,C#,.net,Asp.net Mvc,Asp.net Mvc 2,Iis 7.5,单击my webapp中的以下链接可生成405: <a href="/unsubscribe/confirm?emailUid=<%= ViewData["emailUid"] %>&hash=<%= ViewData["hash"] %>" class="button">Yes, unsubscribe me.</a> 简单的东西。当我F5它时,它工作,但当我在IIS(7.5和6)中托管它时,我得到了错误 我对这个很迷茫。我已经搜遍了网

单击my webapp中的以下链接可生成405:

<a href="/unsubscribe/confirm?emailUid=<%= ViewData["emailUid"] %>&hash=<%= ViewData["hash"] %>" class="button">Yes, unsubscribe me.</a>
简单的东西。当我F5它时,它工作,但当我在IIS(7.5和6)中托管它时,我得到了错误


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

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

将其更改为此选项是否有效:

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

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

将其更改为此选项是否有效:

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

确保输出的URL有效,并正确转义任何无效字符,例如,确保将
&
转义为
&

确保输出的URL有效,并正确转义任何无效字符,例如,确保将
&
转义为
&

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

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



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

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


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

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


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

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


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

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


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

是否尝试将数据转换为字符串?(字符串)ViewData[“emailUid”]?是否尝试将数据强制转换为字符串?(字符串)ViewData[“emailUid”]?