.net core2数据不为空,但视图始终说数据为空

时间:2019-08-12 12:20:30

标签: c# json asp.net-core .net-core asp.net-core-mvc

我对此.Net Core完全感到困惑,并感谢您的帮助。

该网站与我的本地计算机完美配合。我正在使用完全相同的数据库和相同的代码。

但是当我将网站部署到托管公司服务器时。以某种方式继续获取 SqlNullValueException:数据为Null。无法在Null值上调用此方法或属性。

 @model FeedbackViewModel

 @if (Model.Feedbacks != null)
 {
    <p>Number of item = @Model.Feedbacks.Count()</p>
 }

这是代码的非常简化的版本。 有谁知道为什么模型不为空,但是当我要求向我显示项目数时,由于空值异常而失败了吗?

public class FeedbackViewModel
{
    public IEnumerable<FeedbackModel> Feedbacks { get; set; }
}

// CONTROLLER

return View(new FeedbackViewModel
{
     Feedbacks = feedbackRepository.Feedbacks.Where(c => c.FeedbackStatus == true)                                        
 });

3 个答案:

答案 0 :(得分:2)

将其创建为列表而不是IEnumerable,然后查看其是否固定。

public class FeedbackViewModel
{
    public FeedbackViewModel(){
        Feedbacks = new List<FeedbackModel>();
    }
    public List<FeedbackModel> Feedbacks { get; set; }
}


  Feedbacks = feedbackRepository.Feedbacks.Where(c => c.FeedbackStatus == true).ToList();

答案 1 :(得分:1)

您应该在末尾添加ToList()

return View(new FeedbackViewModel
{
     Feedbacks = feedbackRepository.Feedbacks.Where(c => c.FeedbackStatus == true).ToList()                                        
});

答案 2 :(得分:0)

替换此

return View(new FeedbackViewModel
{
     Feedbacks = feedbackRepository.Feedbacks.Where(c => c.FeedbackStatus == true)                                        
 });

使用

return View(new FeedbackViewModel
{
     Feedbacks = feedbackRepository.Feedbacks.Where(c => c.FeedbackStatus == true).FirstOrDefault()                                        
 });