Url.Action不包括端口号

Moo*_*ice 8 c# https asp.net-mvc-3

我有一个部分视图显示在非HTTPS页面上,但POSTS显示在需要SSL的控制器上.表单定义如下:

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

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

提前致谢!

Dar*_*rov 10

你可以这样包括它:

@Url.Action(
    "authenticate", 
    "auth", 
    null, 
    "https", 
    Request.Url.Host + ":" + Request.Url.Port
)
Run Code Online (Sandbox Code Playgroud)

当然,这意味着您的本地Web服务器必须支持SSL,而Cassini则不然.您可以使用IIS Express来实现此功能.