我有一个应用程序,其index.cshtml页面正常工作。在索引中,我有下面的控制器创建一个pdf页面:
public ActionResult Report()
{
LocalReport lr = new LocalReport();
string path = Path.Combine(Server.MapPath("~/Report"), "Person.rdlc");
if (System.IO.File.Exists(path))
{
lr.ReportPath = path;
}
else
{
return View("Index");
}
List<Person> cm = new List<Person>();
var viewModel = new PersonIndexData();
viewModel.People = db.Person
.Include(k => k.Groups)
.OrderBy(k => k.Name);
cm = viewModel.People.ToList();
ReportDataSource rd = new ReportDataSource("DataSet1", cm);
lr.DataSources.Add(rd);
string reportType = "pdf";
string mimeType = string.Empty;
string encoding = string.Empty;
string fileNameExtension = string.Empty;
string deviceInfo =
"<DeviceInfo>" +
" <OutputFormat>pdf</OutputFormat>" +
" <PageWidth>8.5in</PageWidth>" +
" <PageHeight>12in</PageHeight>" +
" <MarginTop>0.5in</MarginTop>" +
" <MarginLeft>0.5in</MarginLeft>" +
" <MarginRight>1in</MarginRight>" +
" <MarginBottom>0.2in</MarginBottom>" +
"</DeviceInfo>";
Warning[] warnings;
string[] streams;
byte[] renderedBytes;
renderedBytes = lr.Render(
"pdf",
deviceInfo,
out mimeType,
out encoding,
out fileNameExtension,
out streams,
out warnings);
return File(renderedBytes, mimeType);
}
当我在Visual Studio中运行项目时,它会创建pdf文件。但是当我发布项目并将其上传到服务器然后调用我得到的操作:
对象引用未设置为对象的实例。描述:一个 在执行当前Web期间发生了未处理的异常 请求。请查看堆栈跟踪以获取有关的更多信息 错误以及它在代码中的起源。
异常详细信息:System.NullReferenceException:不是对象引用 设置为对象的实例。
Line 60: </tr>
Line 61:
Line 62: @foreach (var item in Model.People)
Line 63: {
Line 64: if(item.IsApproved == true)
Source File: Index.cshtml Line: 62
这个错误对我没有意义,因为它在索引中给出了错误,它始终正常工作。另外为什么它在Visual Studio上工作但在服务器上不工作?感谢。