在.Net Core中检查动态模型上的空属性

时间:2019-01-08 16:58:41

标签: c# razor asp.net-core

我正在尝试将动态模型传递给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

错误文字(标题为null时):

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

在上面的屏幕截图中,“ asInput”和“ title”具有值,但是如果没有,它们也会产生相同的错误。如您所见,我从空合并开始,但最终尝试了一个仍然失败的简单“ if”

使用“ IsNullOrWhiteSpace(Model.Property)”仍然是一个错误,因为访问Model.Property时会产生错误

0 个答案:

没有答案