MVC Post请求不在Edge / IE中工作,但在FF&铬

时间:2015-11-06 10:58:58

标签: asp.net-mvc cross-browser

我的MVC5网站托管在IIS 8.5(Azure VM)中。

出于某种原因,我的POST请求代码在使用Firefox或Chrome时有效。但是在使用Internet Explorer或Microsoft Edge时使用HTTP 500(内部服务器错误)进行响应!

之前的网站'是一个应用程序'位于默认网站下,在开发阶段,它正在运行。一旦我将其作为网站移动,POST代码就不再有效了!

需要注意的是,在Visual Studio中使用任何这些浏览器运行代码时效果很好!

我花了一天时间调查并试图让它发挥作用。任何人都可以看到代码是否有任何问题,或者我在IIS中遗漏了什么?

以下代码被剥夺了它的绝对最低限度,问题仍在发生......

查看

<div class="col-md-12">
@using (Html.BeginForm("Test", "Home", FormMethod.Post))
{
    @Html.AntiForgeryToken()

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Click Me" class="btn btn-primary" />
        </div>
    </div>
 }
</div>

控制器

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Test()
{
    // Striped down code to 1 line that can't go wrong!
    return RedirectToAction("About");
}

路线配置

非常默认......

        public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }

错误页面

今天(2015年8月8日)解决了这个问题。只需添加/Shared/Error.cshtml即可解析丢失的错误页面。请注意为什么这样:

<error statusCode="500" path="/Error/ServerError" responseMode="ExecuteURL" />

不会处理所有500个错误。我(显然)读到HandleError属性需要/Shared/Error.cshtml页面。

我无法获得500错误的根本原因。我只得到标准的500错误详细信息页面只是建议可能是什么问题。 任何人都知道如何获得例外原因?

0 个答案:

没有答案