ASP.NET MVC 3添加控制器引发错误“;对象引用未设置为对象的实例;
当我尝试将控制器添加到ASP.NET MVC 3 intranet项目时,出现以下错误 对象引用未设置为对象的实例 我正在跟随一篇文章来开发信号器应用程序 我怀疑在安装了信号机之后,是否出了什么问题,但对此不是很确定 编辑 型号代码:ASP.NET MVC 3添加控制器引发错误“;对象引用未设置为对象的实例;,asp.net,asp.net-mvc-3,ef-code-first,nuget,signalr,Asp.net,Asp.net Mvc 3,Ef Code First,Nuget,Signalr,当我尝试将控制器添加到ASP.NET MVC 3 intranet项目时,出现以下错误 对象引用未设置为对象的实例 我正在跟随一篇文章来开发信号器应用程序 我怀疑在安装了信号机之后,是否出了什么问题,但对此不是很确定 编辑 型号代码: public class BlogPost { [Key] public int Id { get; set; } [Required] public string Title { get; set; } public st
public class BlogPost
{
[Key]
public int Id { get; set; }
[Required]
public string Title { get; set; }
public string Post { get; set;}
}
DbContext:
namespace SignalR.Models
{
public class BlogPostContext : DbContext
{
public DbSet<BlogPost> BlogPosts { get; set; }
}
}
namespace signer.Models
{
公共类BlogPostContext:DbContext
{
公共DbSet BlogPosts{get;set;}
}
}
控制器:
我对SignalR一无所知,但我很确定问题与视图试图为空对象的属性呈现HTML有关 我浏览了这篇文章,看不到任何对存储数据的实际数据库的引用,也没有提供从您的代码生成数据库的代码(该文章的作者不清楚您将连接到现有数据库还是生成数据库) 如果您还没有现有的数据库,那么您需要告诉您的实体框架代码生成一个数据库;(你需要的东西在帖子的底部) 现在,看看您设置entity类的方式,假设您还没有完成这两篇文章中提到的任何事情,entity Framework应该会自动为您创建一个数据库(这是默认行为-不确定如果您没有安装SQL Server Express或更高版本会发生什么)。是否已检查SQL server实例中是否有数据库?它应该被称为BlogPostContext。在这里填入一些数据,现在应该可以了 那你为什么会遇到这个问题?现在你要么
@if (Model == null)
{
<span>No data!</span>
}
@else
{
// All the auto generated view code goes here...
}
用这样的东西代替它
BlogPost blogPost = db.BlogPosts.Find(id)
BlogPost blog = new BlogPost()
{
Title = "Use Entity Framework Code-First";
Post = "blog post body goes here..."
};
IEnumerable<BlogPost> posts = new List<BlogPost>();
posts.Add(blog);
BlogPost blog=newblogpost()
{
Title=“首先使用实体框架代码”;
Post=“博客帖子正文在这里…”
};
IEnumerable posts=新列表();
添加(博客);
注意:这两种解决方案用于向您演示问题,一旦正确设置了数据库,您应该恢复使用数据检索代码。@Benjamin-感谢您的精彩详细回答。因为我首先使用了实体框架代码,并且我假设人们在他们的系统上安装了SQLEXPRESS,这可能就是这里的问题所在 但是谢谢你的详细解释。看起来这对普拉莫德有帮助 @Pramodtech-如果你能告诉我们本杰明的哪一条建议对你有帮助,我很乐意更新这篇文章,让它更清晰 我以为人们会下载代码并用它开火:)
这确实属于“评论”部分,但我还没有足够的代表发表评论,因此很抱歉将其作为答案发布。需要一些代码来帮助您,谢谢!你试过调试你的代码吗?在你的图片上,你选择了
BlogPost
,而不是BlogPostContext
在数据上下文类下拉列表中。这是你图像中的“打字错误”吗?因为这里必须提供一个从DbContext
@nemesv my bad>继承的类。这是一个错误的映像。更新了正确的图像。