MVC4剃刀形式在Windows Phone 8.1上返回404 -适用于PC与Windows 8.1

MVC4 razor form returns 404 on Windows Phone 8.1 - works on PC with Windows 8.1

本文关键字:Windows 适用于 PC 返回 Phone MVC4 剃刀      更新时间:2023-09-26

我有一个MVC4 Razor视图,它有几个提交按钮的单一表单。提交按钮的点击由jQuery的.click()捕获,表单的动作根据点击的特定按钮而改变。表单通过JavaScript的form.submit()提交到一个新的选项卡(或窗口)。此机制在Windows 8和Windows 8.1 PC上的IE 8、9、10、11和FF 26-30中运行良好。

Windows Phone 8或Windows Phone 8.1 IE出现问题。表单不会发布到新的选项卡或窗口,一旦点击提交按钮,就会返回404。

控制器动作:

[HttpPost]
[ValidateAntiForgeryToken]
[Authorize]
public ActionResult system_A()
{
     //code
}

MVC Razor视图:

@using (Html.BeginForm("dummyAction", "sso", FormMethod.Post, new { @id = "ssoForm", target="_blank" }))
{
    @Html.AntiForgeryToken()
    <input type="submit" id="system_A" class="sso" value="System A" />
    <input type="submit" id="system_B" class="sso" value="System B" />
}
JavaScript:

$('.sso').click(function () {
        var action = 'sso/' + $(this).prop('id');
        var form=$('#ssoForm');
        $(form).prop('action', action);
        form.submit();
        return false;
});

如果我从表单中删除target="_blank",它适用于Windows Phone 8。我怎么能使这个工作没有删除target="_blank"

也许这与相对url和绝对url有关?您是否尝试过使用绝对url(完整的http://www.myfullsiteurl.com ....Url)看看是否有什么不同?