将我的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
感谢您的帮助
答案 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