为什么window.location和window.location.href在MVC中返回Page Not Found Error?

时间:2014-08-12 11:42:10

标签: javascript asp.net-mvc asp.net-mvc-4

我有一个MVC应用程序,可以将用户发送到购物车页面,以便在结帐前查看其项目摘要。当用户单击结帐链接时,它会触发此JavaScript函数:

function CartCheckOut() {
    var cartitems = '@Html.Raw(Json.Encode(Model.CartItems))';
    $.ajax({
           type: 'POST',
           datatype: "application/json",
           data: { cartitems: cartitems },
           url: '@Url.Action("CheckOut", "ShoppingCart")',
           success: function (result) {
             if (result) {
               window.location = result;
             }
           }
    });
 }

然后将它们发送到处理请求的购物车控制器并返回带有商家密钥的URL,以便将它们重定向到商家网站以完成结帐流程。

为了简化问题的描述,我排除了Checkout方法的其他部分,但它只返回一个带有键/对值的字符串URL。但是由此产生的问题与返回给函数的URL无关,因为在将我登陆到启动调用的同一页面后,它总是会导致页面未找到错误。

public string CheckOut(string cartitems) 
{
    return "http://www.google.com";
}

如果我使用window.open(结果);在CartCheckOut函数中,会启动一个新页面,然后我将转到从控制器传回的URL。

但如果我使用

window.location = result; 

window.location.href = result;

我收到一个Page not found错误,没有重定向到指定的URL。 我也尝试将Controller方法指定为ActionResult和RedirectResult来执行返回重定向(url),但结果是相同的。

这种执行重定向的方法是不正确的还是我可能会遗漏某些关键部分?

0 个答案:

没有答案