2017-05-16 3 views
0

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) 
+0

「モデル」を表示して、「Nem」プロパティの外観を確認できますか? – Svek

+0

@Svek投稿を編集しました。 'Nem'プロパティは列挙型です。編集したポストで列挙型を表示する方法があります。 – szkup

+0

2番目のコードブロックの最後に '}'がありますか?ソートされた例外が指し示している問題のような一見! – Svek

答えて

1

が(ビューが共有\ DisplayTemplates \ Enum.cshtmlを\)

あなたは正確にあなたのelse声明

の最後に決算}が欠落していると、例外はあなたに何を言っている:)

関連する問題