4

将我的 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

感谢您的帮助

4

3 回答 3

14

我遇到了同样的 ViewBag 错误。在我的情况下,模型为空,但异常指向 viewbag 行。

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

于 2013-04-26T10:41:37.837 回答
4

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

<title>@ViewBag.Title</title>

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

@{
     ViewBag.Title = "Title of the page";
     Layout = "~/Views/Shared/_Layout.cshtml";
}
于 2012-02-16T14:51:48.493 回答
0

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

〜Z

于 2014-02-15T05:19:19.977 回答