Я просто пытаюсь создать представление, но получаю следующую ошибку:
System.InvalidOperationException: элемент модели, переданный в словарь имеет значение null, но для этого словаря требуется ненулевой элемент модели типа "System.DateTime
Теперь, я знаю, почему это происходит, конкретное поле в базе данных равно null, однако оно должно быть, поскольку это то, что редактируется позднее. Вот мой код:
Действие
public ActionResult View(Int64? Id)
{
ModelContainer ctn = new ModelContainer();
var item = from t in ctn.Items where t.ItemID == Id select t;
return View(Item.First());
}
Основной вид
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Administrator.Master" Inherits="System.Web.Mvc.ViewPage<myApp.Data.Item>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
View
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% Html.RenderPartial("Details", Model); %>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="Header" runat="server">
<h1>Details - <%= Model.MainItem %></h1>
</asp:Content>
Частичный вид
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<myApp.Data.Item>" %>
<%@ Import Namespace="myApp.Supplier.Web.Extensions" %>
<fieldset>
<legend>Information</legend>
<div class="fieldset">
<%= Html.LabelFor(m => m.MainItem)%>
<%= Html.DisplayFor(m => m.MainItem, "FormTextShort")%><br />
<%= Html.LabelFor(m => m.Supplier.Name)%>
<%= Html.DisplayFor(m => m.Supplier.Name, "FormTextShort")%><br />
<%= Html.LabelFor(m => m.ProductCode)%>
<%= Html.DisplayFor(m => m.ProductCode, "FormTextShort")%><br />
<%= Html.LabelFor(m => m.Product.SubmissionDate)%>
<%= Html.DisplayFor(m => m.Product.SubmissionDate, "FormDateShort")%><br />
<%= Html.LabelFor(m => m.Product.SentForRepair)%>
<%= Html.DisplayFor(m => m.Product.SentForRepair, "FormDateShort")%><br />
</div>
</fieldset>
В этом случае дата x.Product.SentForRepair остается пустой, поскольку на момент ее отправки она еще не отправлена. У меня есть другие поля, подобные этому, например. totalCost и т.д. Однако для простоты я не включил их здесь. Если я прокомментирую строки SentForRepair, представление отлично отобразится с другой информацией.
Я был бы так благодарен, если бы кто-нибудь мог указать мне в правильном направлении, как обойти эту ошибку!:)