Проверка нулевых свойств на динамических моделях в .Net Core - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь передать динамическую модель частичному представлению в ASP.NET Core 2.2 (используя частичное представление, чтобы добавить согласованность и удобство обслуживания в мой код)

Код:

@model dynamic
@{
    var asInput = Model.asInput ?? false;
    var title = Model.title ?? "";
    var dataTooltip = string.IsNullOrWhiteSpace(Model.title) ? "" : "enabled";

    var inputType = "submit";
    if (Model.inputType != null) { inputType = Model.inputType; }

    var cssClasses = "";
    if (string.IsNullOrWhiteSpace(Model.cssClass)) { cssClasses = Model.cssClass; }
}

@if (!asInput)
{
    <h1 class="far fa-eye"></h1>
}
else
{
    <input type="submit" value="&#xf06e;" class="btn btn-block btn- 
   primary @cssClasses" data-tooltip="@dataTooltip" title="@title" />
}

Ошибка:

enter image description here

Текст ошибки (когда заголовок нулевой):

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
  HResult=0x80131500
  Message='<>f__AnonymousType1<bool>' does not contain a definition for 'title'

на приведенном выше снимке экрана «asInput» и «title» имеют значения, но в противном случае они также выдают ту же ошибку. Как вы можете видеть, я начал с объединения нулей, но в итоге попробовал простое «если», которое все равно не удалось

использование «IsNullOrWhiteSpace (Model.Property)» по-прежнему является ошибкой, поскольку ошибка возникает при доступе к Model.Property

...