In meinem MVC-app versagt, habe ich eine gemeinsame DateTime.cshtml
Ansicht wie folgt definiert:Mein Nullable Datetime-Ansicht wird mit einem Null
@model DateTime?
@{
var value = "";
if (Model.HasValue)
{
value = String.Format("{0:d}", Model.Value);
}
}
@Html.TextBox("", value, new { @class = "form-control datepicker", type = "text" })
In einem meine Ansichten ich es wie folgt verwendet werden:
@model PublicationSystem.ViewModels.ProfileEdit
<div class="form-group">
@Html.LabelFor(model => model.BirthDate, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.BirthDate)
</div>
</div>
wenn jedoch mein Modell ein Null
für Birth hat, erhalte ich diese Meldung:
der Artikel Modell in die dicti geben onary ist null, aber dieses Wörterbuch benötigt ein Nicht-Null-Modellelement vom Typ 'System.DateTime'.
Im Modell ProfileEdit
ich das Feld haben wie folgt definiert:
[DataType(DataType.Date), Display(Name = "Birth Date")]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime? BirthDate { get; set; }
Wie kann ich es bekommen die Ansicht zu laden, auch wenn es eine Null ist? Was mache ich falsch?
PS, ich habe andere Beiträge gelesen, die ähnlich sind, von denen die meisten sagen, mein Modell für den Editor Steuerelement nullable machen, aber wie Sie sehen können, mache ich das schon.
Update:
Hier ist die Controller-Aktion (Mapper.Map nimmt einfach das Modell, und füllt das Ansichtsmodell ProfileEdit
):
[CheckId(RedirectToReferrer = true)]
public virtual ActionResult Edit(Guid id)
{
var profileEdit = Mapper.Map<ProfileEdit>(db.Profile.Find(id));
if (profileEdit == null)
{
return HttpNotFound();
}
return View(profileEdit);
}
"Das Modellelement, das an das Wörterbuch übergeben wurde, ist null, aber dieses Wörterbuch benötigt ein Nicht-Null-Modellelement vom Typ 'System.DateTime'." Wo wird das Wörterbuch erklärt und wie wird es erklärt? –
Ich weiß es nicht. Vielleicht benutzt MVC etwas anderes, um den Editor zu rendern. –
Ich habe Ihre Vorlage getestet und es funktioniert ohne Fehler. Zeigen Sie uns Ihre Steuerelementaktion, die die Ansicht sendet – CodeNotFound