私は、さまざまなモデルクラスのカスタムEditorTemplatesをいくつか持っています。これらのテンプレートの中で、私は明らかにモデルのプロパティを参照する必要があります。私の問題は、Model.Id(たとえば)の直接構文を使用すると、値がnullであることです。別の例は、空の文字列を返すModel.Nameです。しかし、式でモデルを参照すると(たとえば、@ Html.TextBoxFor(i => i.Name))、その値がそこにあります。この例ではMVC 3 EditorTemplate - モデルのプロパティが空です。
@model Vigilaris.Booking.Services.CompanyDTO
<div>
<fieldset class="editfieldset">
<legend class="titlelegend">Company Details</legend>
<ol>
<li>
@Html.TextBox("tb1", @Model.Id)
@Html.TextBox("tb2", @Model.Name)
</li>
<li>
@Html.LabelFor(i => i.CreatedDate)
@Html.DisplayFor(i => i.CreatedDate)
</li>
<li>
@Html.LabelFor(i => i.Name)
@Html.TextBoxFor(i => i.Name)
</li>
<li>
@Html.LabelFor(i => i.Description)
@Html.TextAreaFor(i => i.Description)
</li>
<li>
@Html.LabelFor(i => i.Phone)
@Html.TextBoxFor(i => i.Phone)
</li>
</ol>
</fieldset>
</div>
、モデルからのデータを表示LabelForとDisplayForヘルパー機能を使用しているすべてのコード:さらに例示する
は、ここでコードスニペットです。ただし、Html.TextBoxコード部分はModel.Idに0を返し、Nameに空の文字列を返します。
モデルを直接参照すると、実際のモデルデータにアクセスできないのはなぜですか?
おそらく原因ではありませんが、あなたは冗長な@を1つ持っています。 @ Html.TextBox( "tb1"、Model.Id)を使用します(Modelの前に@はありません)。 –