UPDATE 問題は構文の問題でした。@awrigley は、Razor でこれを記述する正しい方法を示しています。
以下の作品:
@if(Model.Thing.Prop != null)
{
Html.RenderPartial("SomePartialView", Model.Thing.Prop);
}
Foo
特定の上位 1 つの詳細をBar
HTML テーブルとして表示する必要があります。Foo
空のテーブルを非表示にしたり、 nullの場合に「見つかりません」というメッセージを表示したりするにはどうすればよいですか?
例えば。NullReferenceException
次の行にが表示Model.Thing.Prop
されnull
ます。
@{Html.RenderPartial("SomePartialView", Model.Thing.Prop);}
意図的に null です。リポジトリは空の代わりに null を返しますFoo
。しかし、これは少し的外れです。つまり、 null が与えられた場合、 .Model.Thing.Prop
を呼び出したくないということですHtml.RenderPartial
。
更新
私は運が悪く、次のことを試しました:
@if(Model.Thing.Prop != null)
{
@{Html.RenderPartial("SomePartialView", Model.Thing.Prop);}
}
その結果、Visual Studio は、行 1、列 1 で期待;
されていること、および行 1、列 1 で;
無効な式であることを教えてくれます (これは、MVC3 のプレリリース ステータスによるものだと思います)。取得したブラウザでページにアクセスする
CS1501: メソッド 'Write' のオーバーロードは引数を 0 とらない
行が@Html.RenderPartial
強調表示されます。
私も試しました
@if(Model.Thing.Prop != null)
{
<text>
@{Html.RenderPartial("SomePartialView", Model.Thing.Prop);}
</text>
}
しかし、これは私の部分ビュー内からの結果になり、NullReferenceException
正しくないようです。Model.Thing
は間違いなく有効Bar
であり、Model.Thing.Prop
間違いなくですnull
Foo
。