2013-10-14 29 views
3

当检查浏览器控制台时,为什么我的应用程序在登录页面向我抛出一些javascript错误?Asp.net mvc应用程序在用户登录之前抛出js语法错误

我已经把我的web.config中包含以下内容:

<authentication mode="Forms"> 
    <forms loginUrl="~/Login" timeout="90" /> 
</authentication> 

然后,我有一个_AnonymousUserLayout.cshtml包含以下脚本:

<!-- Bootstrap JS --> 
<script src="@Url.Content("~/Scripts/jquery-1.8.2.js")"></script> 
<script src="@Url.Content("~/Scripts/bootstrap.js")"></script> 

<!-- Supersized JS --> 
<script src="@Url.Content("~/Scripts/supersized.core.3.2.1.js")"></script> 

在我Login.cshtml(通过渲染RenderBody()在布局文件中)我包括以下内容:

<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script> 

在我Global.asax.cs我定义这个过滤器:

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    filters.Add(new System.Web.Mvc.AuthorizeAttribute()); 
} 

最后,我重定向到登录页面在我_ViewStart.cshtml

@{ 
    if (Request.IsAuthenticated) 
    { 
     Layout = "~/Views/Shared/_Layout.cshtml";  
    } 
    else 
    { 
     Layout = "~/Views/Shared/_AnonymousUserLayout.cshtml"; 
    } 

} 

每当我不登录,并重定向到登录页面,我在开发者控制台中看到以下错误:

Uncaught SyntaxError: Unexpected token < :54837/Login?ReturnUrl=%2FScripts%2Fkendo%2F2013.1.319%2Fjquery.min.js:1 
Uncaught SyntaxError: Unexpected token < :54837/Login?ReturnUrl=%2FScripts%2Fkendo%2F2013.1.319%2Fkendo.all.min.js:1 
Uncaught SyntaxError: Unexpected token < Login?ReturnUrl=%2FScripts%2Fkendo%2F2013.1.319%2Fkendo.aspnetmvc.min.js:1 

我在做什么错?

回答

3

从我的ASP.Net经验(不MVC):如果窗体身份验证被启用,你必须绕过认证对于在登录页面所使用的所有脚本和图像。这是通过使用在web.config位置元件按照下述样品进行:

<location path="<your path>jquery-1.8.2.js"> 
<system.web> 
    <authorization> 
    <allow users="*"/> 
    </authorization> 
</system.web> 

相关问题