处理partials和null模型值中的空模型

bil*_*ean 3 null razor asp.net-mvc-3

我在将模型传递给partials以及处理模型中的空值时,如何处理空值时遇到问题.

在这个块中:

@section TaskBar{
     @Html.Partial("_TaskBar", Model);
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:e:\ Views\Shared_TaskBar.cshtml(107):错误CS1002 :; 预期

???

此外,部分中的空值有问题

我试过了:this.userID = ko.observable("@ if(Model.UserID == null){"null"} else {Model.UserID}");

this.userID = ko.observable("@(Model.UserID == null)?"null" :Model.UserID");
Run Code Online (Sandbox Code Playgroud)

与; 等等...

所以我的问题是..我的部分将经常传递一个null模型..所以如何处理部分方法,如果null如何在视图中处理?谢谢!

Iri*_*dio 10

我不明白你对Model null的意思,因为你的例子检查UserId是否为null而不是Model本身.因此,假设您要检查整个模型,我个人会if在视图的开头使用一个简单的模型.像这样的东西

 @model MyViewModel
 @if (Model != null) {
 <div>
    @Model.UserId
 </div>
 }
Run Code Online (Sandbox Code Playgroud)

或者,当您在声明该部分时定义RenderSection传递Required=false时,如果模型具有值,则可以选择性地执行此操作.

在你的layout.cshtml中

@RenderSection("Taskbar", false)
Run Code Online (Sandbox Code Playgroud)

在你的页面中

 @if (Model != null) {
   section TaskBar{
     @Html.Partial("_TaskBar", Model);
   }
 }
Run Code Online (Sandbox Code Playgroud)