我有一个捆绑的ASP.Net MVC 4,.net 4.5项目。当我向控制器添加[授权]时,@ 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")
答案 0 :(得分:3)
我只想添加我的修复程序。我在最后一小时与它搏斗,终于意识到它是什么。就我而言,@Scripts.Render("~/my/script/bundle")
包含一个JavaScript文件,其中包含一个简单的语法错误。而已。当我意识到它可能是什么时,我去查看了JavaScript文件,果然,有一条红色的波浪线给了我手指。
答案 1 :(得分:1)
是的,经过几个小时的讨论,看着各种不相关的地方,我已经解决了这个问题......
我的_Layout视图有一些其他razor调用正在查看较低的pagemodel属性,但是当我被重定向到登录进行身份验证时,pagemodel为null,这就是问题所在。
只记得那些人,Visual Studio正在打破的行并不总是与实际问题相符,特别是在剃须刀中,应该早点记住这个!在下一个声明中低头看。答案 2 :(得分: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 。这可能会解决您或他人的问题。
答案 3 :(得分:0)
我没有足够的声誉来评论Doga的回答,但是我也发生了同样的事情。我在HomeController中添加了[Authorize]属性,此后,@ Styles.Render和@ Scripts.Render也遇到了同样的问题。
我发现在_Layout的更深处,我正在访问ViewData中的一项并将其强制转换为bool,但这是空的。我对其进行了修复,以使其首先检查null,现在可以正常工作。