使用Html.BeginForm()创建表单的最佳方法应该是SSL?

Zac*_*ack 7 asp.net asp.net-mvc

我在非SSL页面上有一个表单,我想将其作为SSL提交.我正在使用Html.BeginForm创建表单,但这不是必需的.如果我可以将其设置为可配置,那也很好,这样我就可以设置一个标志,以便在开发服务器或我的笔记本电脑上关闭SSL并在生产服务器中打开它.

我知道我可以将整个URL设置为配置项,但我希望我可以使它更灵活,所以我可以设置真或假.

Dav*_*res 5

您可以覆盖由Html.BeginForm创建的表单的action属性.

<% 
   var actionURL = (Model.UseSSL ? "https://" : "http://") 
                   + Request.Url.Host + Request.Url.PathAndQuery;    

   using (
          Html.BeginForm(
                         "Action", 
                         "Controller", 
                         FormMethod.Post, 
                         new { @action = actionURL }
                        )
         )
%>
Run Code Online (Sandbox Code Playgroud)

请注意Model.UseSSL标志的使用,该标志应由其Controller传递给此View.