c# - Url.Action 不包括端口号

标签 c# asp.net-mvc-3 https

我有一个显示在非 HTTPS 页面上的局部 View ,但 POSTS 到需要 SSL 的 Controller 。表单定义是这样的:

        <form id="authForm"
          method="post"
          action="@Url.Action("authenticate", "auth", new {}, "https")">

我遇到的问题是,在 Visual Studio 中和调试时,主机和端口是 localhost:64043。但是,上面的 Url.Action 调用没有输入端口号,这意味着浏览器会定向到我的 IIS 安装。我是否必须添加其他内容或重写此方法?我希望我的应用程序与位置无关。

提前致谢!

最佳答案

你可以像这样包含它:

@Url.Action(
    "authenticate", 
    "auth", 
    null, 
    "https", 
    Request.Url.Host + ":" + Request.Url.Port
)

当然,这意味着您的本地网络服务器必须支持 SSL,而 Cassini 则不是这样。你可以使用 IIS Express为了这个工作。

关于c# - Url.Action 不包括端口号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6723105/

相关文章:

c# - 使用反射的 == 运算符

c# - 无法在 ASP.NET Core 2.0 中对 .js 文件进行响应压缩

asp.net-mvc-3 - 流畅的验证 - MVC 3

asp.net-mvc-3 - Asp.Net MVC 3 - @Html.Action 不会呈现/返回任何 HTML

wcf - 在负载均衡器后面运行 WCF,其中 LB 到 IIS 的连接是 http,客户端到 LB 的连接是 HTTPS

ssl - squid sslbump 与专用连接警告一起使用

c# - 避免由于延迟而在 SQL Server 中出现重复

c# - WinForm DataBinding 业务对象 C# .NET 中的隐藏属性

asp.net-mvc-3 - 如何停止在 ASP.NET MVC 3 beta 1 中编码字符串?

http - 调试IE9 "only display secure content"