Sql 很抱歉,处理您的请求时出错。在MVC3模型实体中
我是MVC新手,制作了一个可以在本地机器Windows 7上使用SQLExpress的应用程序,但当我在Windows 2008 R2、SQL 2008 R2和IIS7上部署live时,我收到了以下错误:抱歉,处理您的请求时出错 下面是有问题的代码片段: WEB.CONFIG连接字符串Sql 很抱歉,处理您的请求时出错。在MVC3模型实体中,sql,asp.net-mvc-3,iis-7,model,Sql,Asp.net Mvc 3,Iis 7,Model,我是MVC新手,制作了一个可以在本地机器Windows 7上使用SQLExpress的应用程序,但当我在Windows 2008 R2、SQL 2008 R2和IIS7上部署live时,我收到了以下错误:抱歉,处理您的请求时出错 下面是有问题的代码片段: WEB.CONFIG连接字符串 add name="RentalEntities" connectionString="Data Source=[ServerName];Initial Catalog=[DatabaseName];Integr
add name="RentalEntities" connectionString="Data Source=[ServerName];Initial Catalog=[DatabaseName];Integrated Security=True" providerName="System.Data.SqlClient"
家庭控制器
namespace Rental.Controllers
{
RentalEntities rentalDB = new RentalEntities();
...
public ActionResult Index()
{
var listings = from l in rentalDB.Listings select l;
return View(listings.ToList());
}
}
HOME/INDEX.CSHTML
@model List<Rental.Models.Listing>
@foreach (var listing in Model)
{
@listing.ListingName <br />
}
@(Model==null) //will write to page whether the model data being passed is null.
这里发生的事情是,您将一个空值传递到index.cshtml的模型中。 该代码在null上进行赋值 在Prod中调试此文件: Prod服务器上的列表表中有多少行? 您的LINQ To SQL.dbml是否准确引用了web.config中的连接字符串,还是在.designer.cs中隐藏了一个连接字符串? 尝试在INDEX.CSHTML上设置一些调试信息
@model List<Rental.Models.Listing>
@foreach (var listing in Model)
{
@listing.ListingName <br />
}
@(Model==null) //will write to page whether the model data being passed is null.
在Dev/Test中调试:
要帮助调试它为什么为空,请在索引中的行上为自己设置断点。在return Viewlistings.ToList;上设置它;。它实际上是空的吗?然后在视图中检查null时设置断点。
在foreach之前,运行空值检查:
@if (Model != null)
{
foreach (var foo in Model)
{
//your code
}
}
else
{
@: Model Is null!
}
我做了上面的if-else,它不喜欢@Model部分为null!。当我删除它时,它运行并没有显示任何内容,这意味着该模型为空。为什么呢?我已经正确地设置了数据库和实体…@Charl:请查看关于您的.dbml的更新。我假设您使用的是LINQ To SQL,而不是EF。请详细说明您的最后一条评论,我不明白您所说的查看.dbml更新是什么意思。正如您在上面的控制器上看到的,我使用了实体:rentalenties rentalDB=new rentalenties;所有这些都在我的开发人员和我的朋友的本地计算机上工作。。。我对MVC非常陌生。@Char:我的意思是我已经更新了我的答案,加入了一个关于.dbml的项目符号。这都是关于.dbml使用的连接字符串。查看您的.dbml.designer.cs文件。它是否在第一个构造函数中嵌入了连接字符串?请看这里: