ASP.NET MVC5で次のコードで次の例外が発生します。ビューコード(List)を生成するためにビルトインスカッフォールディングを使用しましたが、機能しません。例外はelseブロックですが、foreachの2番目の要素にスローされますので、何が起こっているのか全く分かりません(ここでは@Html.DisplayFor(modelItem => item.Nem)
)。スカッフォールディングで生成されたビューコードのHttpParseException
私はこの例外について読んだが、そのケースは実際にはif-elseのケースに関するものだったので、私はその解決策を使用することはできず、私が間違っていたことはまだ分かっていない。
System.Web.HttpParseException:「他のブロックが終了 が欠落している "}" の文字。 すべての文字に一致する「}」文字がこのブロック内の「{」文字で、「}」 文字がマークアップとして解釈されていないことを確認してください。
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Nev)
</td>
<td>
@Html.DisplayFor(modelItem => item.Nem)
</td>
<td>
@Html.DisplayFor(modelItem => item.SzuletesiIdo)
</td>
<td>
@Html.DisplayFor(modelItem => item.SzuletesiHely)
</td>
<td>
@Html.DisplayFor(modelItem => item.Taj)
</td>
<td>
@Html.DisplayFor(modelItem => item.Irsz)
</td>
<td>
@Html.DisplayFor(modelItem => item.Telepules)
</td>
<td>
@Html.DisplayFor(modelItem => item.Cim)
</td>
<td>
@Html.DisplayFor(modelItem => item.Email)
</td>
<td>
@Html.DisplayFor(modelItem => item.Mobil)
</td>
<td>
@Html.DisplayFor(modelItem => item.OtthoniTel)
</td>
<td>
@Html.DisplayFor(modelItem => item.AnyaNev)
</td>
<td>
@Html.DisplayFor(modelItem => item.AnyaMobil)
</td>
<td>
@Html.DisplayFor(modelItem => item.AnyaEmail)
</td>
<td>
@Html.DisplayFor(modelItem => item.ApaNev)
</td>
<td>
@Html.DisplayFor(modelItem => item.ApaMobil)
</td>
<td>
@Html.DisplayFor(modelItem => item.ApaEmail)
</td>
<td>
@Html.DisplayFor(modelItem => item.TanfolyamSorszam)
</td>
<td>
@Html.DisplayFor(modelItem => item.TanfolyamOsztaly)
</td>
<td>
@Html.DisplayFor(modelItem => item.Csoport)
</td>
<td>
@Html.DisplayFor(modelItem => item.BallagasEv)
</td>
<td>
@Html.DisplayFor(modelItem => item.KimaradtDatum)
</td>
<td>
@Html.DisplayFor(modelItem => item.PoloMeret)
</td>
<td>
@Html.DisplayFor(modelItem => item.Iskola)
</td>
<td>
@Html.DisplayFor(modelItem => item.BkkIgazolvany)
</td>
<td>
@Html.DisplayFor(modelItem => item.MavIgazolvany)
</td>
<td>
@Html.DisplayFor(modelItem => item.MakIgazolvany)
</td>
<td>
@Html.DisplayFor(modelItem => item.ProgramUtanHaza)
</td>
<td>
@Html.DisplayFor(modelItem => item.EgeszsegugyiTudnivalo)
</td>
<td>
@Html.DisplayFor(modelItem => item.Egyeb)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.GyerekId }) |
@Html.ActionLink("Details", "Details", new { id=item.GyerekId }) |
@Html.ActionLink("Delete", "Delete", new { id=item.GyerekId })
</td>
</tr>
}
EDIT:item.Nemは、(2つの可能な値を有する)列挙型です。私は列挙型を表示するためのDisplayTemplateを使用します(ビューは共有\ DisplayTemplates \ Enum.cshtml \):あなたは2番目のコードブロックを見れば
@model Enum
@if (EnumHelper.IsValidForEnumHelper(ViewData.ModelMetadata))
{
// Display Enum using same names (from [Display] attributes) as in editors
string displayName = null;
foreach (SelectListItem item in EnumHelper.GetSelectList(ViewData.ModelMetadata, (Enum)Model))
{
if (item.Selected)
{
displayName = item.Text ?? item.Value;
}
}
// Handle the unexpected case that nothing is selected
if (String.IsNullOrEmpty(displayName))
{
if (Model == null)
{
displayName = String.Empty;
}
else
{
displayName = Model.ToString();
}
}
@Html.DisplayTextFor(model => displayName)
}
else
{
// This Enum type is not supported. Fall back to the text.
@Html.DisplayTextFor(model => model)
「モデル」を表示して、「Nem」プロパティの外観を確認できますか? – Svek
@Svek投稿を編集しました。 'Nem'プロパティは列挙型です。編集したポストで列挙型を表示する方法があります。 – szkup
2番目のコードブロックの最後に '}'がありますか?ソートされた例外が指し示している問題のような一見! – Svek