2011-11-19 5 views
16

테이블에 일부 행을 표시하려고합니다. 사용자 그룹에 따라보기에는 다른 마크 업이 표시되어야합니다. 관리자는 행을 삭제할 수 있지만 운영자는 행을 표시 또는 숨김으로 표시 만 할 수 있습니다.면도기에 else if 문을 작성하는 방법은 무엇입니까?

면도날에 적절한 if else 문을 쓰려면 어떻게해야합니까?

이 페이지가 제대로 표시되지만 페이지 제목은 구문 분석 오류

입니다 이건 내 코드입니다 :

@model MvcApplication3.Models.ViewModels.New.Question.MatrixRows 

@{ 
    bool visible = Model.Visible; 
} 

<tr> 
    <td> 
    @if(visible) 
     { 
     @Html.TextBoxFor(cn => Model.Row_Number, new { @class = "row required digits", size = 1 }) 
     } 
    @if (!visible) 
     { 
     @Html.TextBoxFor(cn => Model.Row_Number, new { @class = "row required digits", size = 1, disabled = "disabled" }) 
     } 
    </td> 
    <td> 
    @if(visible) 
     { 
      @Html.TextBoxFor(bs => Model.Row_Description, new { @class = "rowdesc", size = 45 }) 
     } 
    @if (!visible) 
    { 
     @Html.TextBoxFor(bs => Model.Row_Description, new { @class = "rowdesc", size = 45, disabled = "disabled" }) 
    } 
    </td> 
    <td> 
     @if (HttpContext.Current.User.IsInRole("Administrator")) 
     { 
      @Html.HiddenFor(x => x.Delete, new { @class = "mark-for-delete" }) 
      @Html.LinkToRemoveNestedForm("Slet", "tr", "input.mark-for-delete")  
     } 
     @if (HttpContext.Current.User.IsInRole("Moderator")) 
     { 
      @Html.HiddenFor(x => x.Visible, new { @class = "mark-for-visible" }) 
      @Html.LinkToDisableNestedForm("Deaktiver", "tr", "input.mark-for-visible")  
     } 
     @Html.HiddenFor(id => Model.Row_Id) 
    </td> 
</tr> 
+0

페이지가 올바르게 표시되었다고 했으므로보기의 논리 또는 페이지의 ** 제목 **에 대한 질문입니까? – JustinStolle

+0

오류 제목을 부여했기 때문에 논리가 잘못 되었습니까? – Kenci

답변

25

제목은 제목을 설정하지 않았기 때문에 구문 분석 오류가 구문 :

@if(visible) 
{ 
    Html.TextBoxFor(bs => Model.Row_Description, new { @class = "rowdesc", size = 45 }) 
} 
else 
{ 
    Html.TextBoxFor(bs => Model.Row_Description, new { @class = "rowdesc", size = 45, disabled = "disabled" }) 
} 

당신은 부울을 확인하고 있습니다. else if에 대해서도 동일하게 작동합니다.

에 코드를 그냥 수행하여 더욱 단순화 할 수있다 :

@Html.TextBoxFor(bs => Model.Row_Description, new { @class = "rowdesc", size = 45, disabled = visible ? "" : "disabled" }) 

당신은 단지 값을 기준으로 속성을 변경, 어쨌든 동일한 코드를 표시되기 때문에. 나에게 이것은 더 가독성이 높아진다. 면도칼에서, 내가

@{ 
    if (ViewBag.Option == "Mobiles") 
{ 
    ViewBag.Title = "Mobiles"; 
    ViewBag.Description = "Mobiles"; 
    ViewBag.Keywords = "Mobiles"; 

} 

    else if (ViewBag.Option == "holiday") 
{ 
    ViewBag.Title = "holiday"; 
    ViewBag.Description = "holiday."; 
    ViewBag.Keywords = "holiday"; 
} 


else 
    { 
     ViewBag.Title = "home"; 
     ViewBag.Description = "home"; 
     ViewBag.Keywords = "home"; 
    } 

} 

희망이 사람을 도움이보기에 SEO 목적

이를 사용한 경우 문제 등

3

당신은 단지 @을 붙이는없이 else를 사용합니다. 그러나, 나는 그것이 귀하의 페이지 제목에 문제가 있다고 생각하지 않습니다. 아마도 ViewBag.Title 속성을 설정해야합니까? 레이아웃 페이지가 설정에 따라 다를 수 있습니다.

@if(visible) 
    { 
    @Html.TextBoxFor(cn => Model.Row_Number, new { @class = "row required digits", size = 1 }) 
    } 
else 
    { 
    @Html.TextBoxFor(cn => Model.Row_Number, new { @class = "row required digits", size = 1, disabled = "disabled" }) 
    } 

제목 문제 : 다른 문 지금

@{ 
    ViewBag.Title = "Home Page"; 
} 

@을 다시 사용하지 마십시오 :

@{ 
    bool visible = Model.Visible; 
    ViewBag.Title = "My Title; 
} 
+0

알겠습니다. 문제를 해결했지만 Parse Error 제목이 표시됩니다. 어떻게 됐니? – Kenci

+0

'ViewBag.Title'을 수정 했습니까? 나는 원래의 대답을 본 후에 그것을 추가했을 것입니다. – tvanfosson

4

다른입니다.

관련 문제