发布到Azure后,我遇到了MVC网站的问题。
在本地测试时一切正常,但在我发布模型停止工作的所有页面并在线上给出“NullReferenceException”之后,我使用模型,比如
@For Each item In Model
我可能忘记在Web.config中添加内容了吗?
P.S。如果您向我展示如何使用breakpionts调试azure网站,那将是完美的。
UPD:
NewsContoller.vb
Imports System
Imports System.Linq
Imports System.Web.Mvc
Imports website.Models.Objects.Collections
Imports website.Models.Logic
Imports website.Models.Objects
Namespace Controllers
Public Class NewsController
Inherits Controller
' GET: News
Function Index(Optional ByVal id As Integer = 0) As ActionResult
Dim model As New NewsList
model = NewsManager.GetList(id)
Return View(model)
End Function
' GET: News/Details/id
Function Details(ByVal id As Integer) As ActionResult
Dim model As New News
model = NewsManager.GetItem(id)
Return View(model)
End Function
End Class
End Namespace
新闻/ Index.vbhtml
@ModelType List(Of website.Models.Objects.News)
<div style="width:100%; border-top:1px solid #e1e1e1;"></div>
<div class="content-wrapper">
<h2 style="margin-top:0;">News</h2>
<div style="position:relative;">
<ul id="news-container" style="visibility:hidden;">
@For Each item In Model
@<li>
<a href="/News/Details/@item.NewsID">
<figure class="tint">
<img src='~/Uploads/News/@String.Concat(item.Pictures(0).PictureGUID,".jpg")' width="243" />
</figure>
<div class="date-container">@item.PostDate.ToString("%d")<br />@item.PostDate.ToString("MMM")</div>
<h3>@item.Title</h3>
<p style="width:233px; padding:0 5px; margin:5px 0;">@item.Description</p>
</a>
</li>
Next
</ul>
</div>
NewsManager.GetList()从数据库返回List(of News)。
答案 0 :(得分:0)
虽然无法告知您NewsManager.GetList()
NewsManager.GetList(id)
的代码可能会返回null
对象而不是空白列表。这可能是由于NewManager
处理错误的数据库连接或数据库表在Azure中创建后没有任何数据的方式。
您可以通过执行以下操作来复制问题:
Function Index(Optional ByVal id As Integer = 0) As ActionResult
Dim model As New NewsList
model = Nothing 'simulate NewsManager.GetList(id) returning null
Return View(model)
End Function
正如@ misha130在评论中提到的,您将找到有关如何在Azure here中调试网站的详细说明。
基本步骤是: