Überprüfen Sie, ob der Wert vom Typ DateTime in der Ansicht null ist, und zeigen Sie leer an, wenn er null ist
Von meinem Controller habe ich Wertemodul zur Ansicht übergeben
public ActionResult Details(long id, string owner)
{
var module = _ownedModuleRepository.GetModuleDetails(id, owner);
return View(module);
}
Ich habe den Wert, den es in der Ansicht enthält, wie folgt gezeigt
<dt>ID</dt>
<dd>@Model.Id</dd>
<dt>Module ID</dt>
<dd>@Model.ModuleId</dd>
<dt>Owner</dt>
<dd>@Model.Owner</dd>
<dt>Module Type</dt>
<dd>@Model.TypeName</dd>
<dt>Module Kind</dt>
<dd>@Model.KindName</dd>
<dt>Ownership Start Date</dt>
<dd>@Model.Start</dd>
<dt>Ownership End Date</dt>
<dd>@Model.End</dd>
@foreach (var properties in Model.Properties)
{
<dt>Property Name</dt>
<dd>@properties.Name</dd>
<dt>Property Value</dt>
<dd>@properties.Value</dd>
}
Zur Zeit@ Model.End ist null, es ist vom Typ DateTime und ich hatte festgelegt, dass es im Ansichtsmodell nullbar ist. Da es null ist, ist es das, was ich im Blick habe
Wie Sie sehen, entspricht der Wert für das Enddatum des Eigentums dem Wert für den Eigenschaftsnamen von unten. Wie kann ich es auf leer setzen, wenn das@ Model.End ist null?
Bearbeiten 1:
Mein Modell
public class OwnedModuleDetails
{
public long Id { get; set; }
public string ModuleId { get; set; }
public string Owner { get; set; }
public string KindName { get; set; }
public string TypeName { get; set; }
public DateTime Start { get; set; }
public DateTime? End { get; set; }
public IEnumerable<Property> Properties { get; set; }
}
Methode aus dem Repository
public OwnedModuleDetails GetModuleDetails(long id, string owner)
{
// ReSharper disable ImplicitlyCapturedClosure
var module = (_dbSis.OwnedModules.Where(t => t.Id == id).Select(m => new OwnedModuleDetails
// ReSharper restore ImplicitlyCapturedClosure
{
Id = id,
ModuleId = m.ModuleId,
TypeName = m.ModuleType.TypeName,
KindName = m.ModuleType.ModuleKind.KindName,
Owner = owner,
Start = m.Start,
End = m.End,
Properties = m.PropertyConfiguration.PropertyInstances.Select(
x => new Property { Name = x.Property.Name, Value = x.Value })
}));
return (module.FirstOrDefault());
}