【问题标题】:ASP.Net MVC4 Cannot perform runtime binding on a null referenceASP.Net MVC4 无法对空引用执行运行时绑定
【发布时间】:2015-04-14 12:23:40
【问题描述】:

我遇到了这个问题,并且我已经检查了每个文件。只是想看看其他人是否能发现错误?

@{
ViewBag.Title = "Event List";
}

<div>

Event Name : @Model.item.eventname <br />
Event Date : @Model.item.date <br />
Event Town : @Model.item.town <br />
Event Country : @Model.item.country <br />
Event Description : @Model.item.description <br />
Event Report : @Model.item.report <br />

@Html.ActionLink("Add New Event" , "AddEvent")


 @*Html.Partial("EventList")*@

</div>

非常感谢所有回复!

下面是链接到原始帖子的事件模型:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;

namespace NETCW.Models
{
public class Event
{
    public int EventID { get; set; }

    [Required(ErrorMessage = "Please enter the event name.")]
    public string eventname { get; set; }

    [Required(ErrorMessage = "Please enter the event date.")]
    public string date { get; set; }

    [Required(ErrorMessage = "Please enter the event town.")]
    public string town { get; set; }

    [Required(ErrorMessage = "Please enter the event country.")]
    public string country { get; set; }

    [Required(ErrorMessage = "Please enter the event description.")]
    public string description { get; set; }

    [Required(ErrorMessage = "Please enter the event report.")]
    public string report { get; set; }

}
}

请参阅下面的编辑我收到一个错误,它说它不包含以下日期、城镇、国家和报告的定义:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;

namespace NETCW.Models
{
public class Event
{
    public int EventID { get; set; }

    [Required(ErrorMessage = "Please enter the event name.")]
    [Display (Name = "Event Name :")]
    public string eventname { get; set; }

    [Required(ErrorMessage = "Please enter the event date.")]
    [Display (Date = "Event Date :")]
    public string date { get; set; }

    [Required(ErrorMessage = "Please enter the event town.")]
    [Display (Town = "Event Town :")]
    public string town { get; set; }

    [Required(ErrorMessage = "Please enter the event country.")]
    [Display (Country = "Event Country :")]
    public string country { get; set; }

    [Required(ErrorMessage = "Please enter the event description.")]
    [Display (Description = "Event Description :")]
    public string description { get; set; }

    [Required(ErrorMessage = "Please enter the event report.")]
    [Display (Report = "Event Report :")]
    public string report { get; set; }

}
}

【问题讨论】:

  • 什么是null?
  • item 很可能为空。有没有在运行时调试的时候检查过,确保不为空?
  • 显示错误详情。检查属性item 是否为null
  • 检查照片链接是否有错误snag.gy/GuHI3.jpg

标签: c# asp.net asp.net-mvc asp.net-mvc-4


【解决方案1】:

您尚未在视图中声明您的模型。在视图的顶部你需要声明它

@model NETCW.Models.Event

编辑

基于编辑的问题@Model.item.eventname 也会失败,因为Event 不包含名为item 的属性。此外,您需要将模型传递给视图,并且您应该使用 htlm 助手来生成元素。在 GET 方法中

Event model = new Event();
return View(model);

在视图中

@Html.DisplayFor(m => m.eventname)

如果您的属性装饰有[Display(Name = "Event Name:")],那么您可以使用以下内容生成关联标签

@Html.DisplayNameFor(m => m.eventname)

【讨论】:

  • 当您说 YourAssembly 时,您的意思是:@model NETCW.Models.Event
  • 你还没有发布你的模型,但是是的,类似的东西
  • 那个错误是因为模型是null。在 GET 方法中,您需要返回模型 - 例如var model = new Event(); return View(model);。并使用 html 帮助器生成您的元素。
  • 我已经在原帖中上传了事件模型
  • 抱歉,没有。您需要在问题中包含详细信息(SO 也是为了帮助其他用户)。 “不确定it需要去哪里”中的it是什么?我不知道你不明白哪一点,或者你还有什么问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多