2010-12-29 3 views
6

razorを使用してnull可能なタイプのエディタテンプレートを作成する方法を探していました。 LinqToSQLクラスにはGuidとNullable型のプロパティがあります。ファイルGuid.cshtmlの最初の行に@model Guid?を使用すると、Guidは常にGuidとみなされますか?タイプ。私はGuidのために別のエディタテンプレートを作成したかったのですが、ファイル名は受け入れられませんでしたか?または<または>文字です。RazorでNullable <T>のエディタテンプレートを作成する方法

助けてください。ありがとう。

+1

'@model Guid? 'ではなく' @model Nullable 'を試したことがありますか? – Buildstarted

+0

はい、それは私が期待したよりもうまくいったと思います。私はそれを別のファイル/エディタテンプレートにしたいが、そうするだろうと思う。ありがとう。あなたに投票してください.. – AceMark

+0

'@model Nullable 'または単に '@model Guid?'(キャストして働いていると思われる通常の、nullではない型に渡しても)、これについてもっと知りたいと思います。通常のタイプとnull可能なタイプのテンプレートを別々に作成することは可能ですか(ファイル名では何を代用しますか?< and >)。または、両方の場合を処理するためのnullable型のテンプレートを作成するためだけに推奨されるスタイルですか? –

答えて

4

私は答えとしてこれを投稿しますね:)

あなたは@model Nullable<Guid>ではなく@model Guidを試してみましたか?

6

nullable値型の場合は、nullable型とnullable型の両方を処理する1つの表示/エディタテンプレートを作成することが意図されているようです。ここではブラッド・ウィルソンpostからの抜粋です:

タイプ名を検索する場合、単純な名前は、名前空間なしに(すなわち、Type.Name)が使用されています。また、型がNullableの場合、Tを検索します(ブール型またはNullable型を問わずブール型テンプレートを取得します)。つまり、値型のテンプレートを作成する場合は、値がnullableかどうかを考慮する必要があります。 ModelMetadataのIsNullableValueTypeプロパティを使用して、値がNULL可能かどうかを判断できます。以下では、組み込みのBooleanテンプレートを使用した例を示します。

したがって、テンプレートに@model Guid?を使用し、nullをチェックします。

関連する問題