ViewBag - 找不到对象引用 - MVC 3

时间:2012-02-16 14:46:32

标签: asp.net-mvc null viewbag

将我的MVC 3 Web应用程序发布到我的网站后,我收到一条错误,指出对象引用未设置为对象的实例。

'错误'行是: 第2行:ViewBag.Title = "Index";

这是我的索引视图:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

这是我的家庭控制器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace WebApplication.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View();
        }

    }
}

我上传了DLL:

System.Web.Helpers
System.Web.Mvc
System.Web.Razor
System.Web.WebPages
System.Web.WebPages.Deployment
System.Web.WebPages.Razor

感谢您的帮助

3 个答案:

答案 0 :(得分:11)

我遇到了相同的ViewBag错误。 在我的情况下,Model为null,但异常是指向viewbag行。

当我通过模型查看错误修复时。

答案 1 :(得分:4)

当您查看/Views/Shared/_Layout.cshtml时,您可能会看到如下内容:

<title>@ViewBag.Title</title>

假设此属性已设置在某处。通常,您在子视图中设置它。因此,最简单的解决方案是修改您的Index.cshtml视图,使其类似于以下内容:

@{
     ViewBag.Title = "Title of the page";
     Layout = "~/Views/Shared/_Layout.cshtml";
}

答案 2 :(得分:0)

请确保Views文件夹中存在布局(_Layout.cshtml)。 Views文件夹中的cshtmls / aspx只继承ViewBag属性。

~Z