1

我有一个捆绑的 ASP.Net MVC 4、.net 4.5 项目。当我将 [Authorize] 添加到我的控制器时,@Scripts.Render 和 @Styles.Render 调用因“对象引用未设置为对象的实例”而中断。

我不能为我的生活找出为什么!

有没有人遇到过这个?谁能帮忙?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Project.Models;
using Project.Repositories;

namespace Project.Controllers
{
    [Authorize]
    public class HomeController : Controller

这打破了我的 _Layout 视图:

@model PageModel
<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

    <title>Project</title>
    <meta name="description" content="">    
    <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0'/><meta name="apple-mobile-web-app-capable" content="yes" /> 
    <meta name="format-detection" content="telephone=no">


    @Styles.Render("~/Content/bootstrap")
    @Scripts.Render("~/bundles/jquery")        
    @Scripts.Render("~/bundles/initializr")        
4

3 回答 3

3

我只想为此添加我的修复程序。我与它搏斗了最后一个小时,终于意识到它是什么。就我而言,它@Scripts.Render("~/my/script/bundle")包含一个 JavaScript 文件,其中包含一个简单的语法错误。就是这样。当我意识到它可能是什么时,我去看了 JavaScript 文件,果然,一条红色的小波浪线给了我手指。

于 2015-10-06T04:15:50.447 回答
1

是的,在为此挠了几个小时并查看了各种不相关的地方之后,我已经解决了这个问题......

我的 _Layout 视图有一些其他 razor 调用正在查看向下的 pagemodel 属性,但是当我被重定向到登录以进行身份​​验证时,pagemodel 为空,这就是问题所在。

记住伙计们,Visual Studio 打破的界限并不总是与实际问题一致,尤其是在剃须刀中,应该早点记住这一点!往下看,在下一个语句。

于 2013-03-14T19:08:39.357 回答
1

我以前经历过,我发现了我的错误。问题出在这一行@Styles.Render("~/andia-agency/css")(_Layout)

在 BundleConfig 文件中

            bundles.Add(
            new ScriptBundle("~/andia-agency/css")
            .Include("~/Content/andia-agency/assets/bootstrap/css/bootstrap.min.css")
            .Include("~/Content/andia-agency/assets/prettyPhoto/css/prettyPhoto.css")
            .Include("~/Content/andia-agency/assets/css/flexslider.css")
            .Include("~/Content/andia-agency/assets/css/font-awesome.css")
            .Include("~/Content/andia-agency/assets/css/style.css"));

我将新的 ScriptBundle更改为新的 StyleBundle。这可能会解决您或其他人的问题。

于 2015-01-19T11:50:52.063 回答