RedirectToAction后没有加载JQuery

时间:2014-07-15 04:02:40

标签: c# .net asp.net-mvc

我会切入追逐。

在我将RedirectToAction调用到我的任何Action方法之后,直到页面呈现之后才会加载我的JQuery库。 (注意:Action方法的直接路由正确加载库)。我目前没有为我的脚本使用renderSection,而是在_Layout.cshtml文档中的标题中加载了包:

<head>
@Scripts.Render("~/bundles/jquery")
</head>

顺便说一句,这适用于我尝试在标题中加载的所有库。 我确实看到了为什么在重定向时它不起作用的原因。也许我没有正确理解RedirectToAction方法,在这种情况下我会对解释感到非常满意。

我使用的重定向示例,来自我的控制器:

return RedirectToAction("Confirmation", new{orderId = order.Id});

(请记住,这个问题会持续存在于我的所有控制器和所有操作中)

非常感谢。

1 个答案:

答案 0 :(得分:0)

在研究了firebug中的“网络”选项卡后,我发现了错误。问题出在这里:

在form-posts之后重定向时,我通过TempData加载一个jquery脚本。我不小心在部分视图的脚本中对jquery进行了外部引用。

<强>控制器:

                TempData["Message"] = new GenericMessage()
            {
                Message = "You need to select a date",
                MessageType = GenericMessages.danger
            };

            return RedirectToAction("Index", "Home");

部分查看脚本:

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript"> $(function () { $('div.alert-generic').delay(3500).fadeOut(); }); </script>
<div class="alert alert-block alert-@genericMessage.MessageType.ToString() alert-generic">
    <a href="#" data-dismiss="alert" class="close">&times;</a>
    @Html.Raw(genericMessage.Message)
</div>

这导致JQuery在重定向上加载两次(在不同版本中)。 从脚本中删除引用后,它再次完美地工作。感谢那些试图帮助我的人,我为此之前没有看到这个错误而道歉。