14

私は、mvcビューページのforeachループ内にswitchステートメントを作成するための適切な構文を見つけようとかなりの時間を費やしています。

これが私がこれまでに行った最新の試みです(他の多くの試みの後)が、Razorエンジンはそれを受け入れません。ここで、エラーはであり@foreach、クロージングが欠落していることを示しています}

@foreach (var item in Model) {

    String s = item.RegistrationStatus.ToString();

    // Make sure this mirrors values in RegistrationStatus enum!
    switch (s)
    {
        case "New": 
            <tr class='info'>
                break;

        case "Arrived": 
            <tr class='success'>
            break;

        default:
            <tr>

    }


......

}
4

4 に答える 4

2

Html.Raw メソッドを使用できます。

    case "New": 
        Html.Raw("<tr class='info'>")
        break;

次のようなその他のオプションについては、 MVC3 Razor: コード ブロック内に html を表示するも参照してください。

    case "New": 
       @:<tr class='info'>
       break;
于 2013-03-07T22:03:43.063 に答える
0

{ を別の行で使用した方がよい場合もあります。このアプローチにより、より多くのコード行を取得できます。一方、"@:" ゴミのない html タグの明確な行が得られます。これにより、「ブラウザ内」デバッグ中に、実際の html との間で「そのまま」html 行全体をすばやくコピーして貼り付けることができます。

@foreach (var item in Model) {
    String s = item.RegistrationStatus.ToString();

    // Make sure this mirrors values in RegistrationStatus enum!
    switch (s)
    {
        case "New":
        {
            <tr class='info'>
        }
            break;
        case "Arrived":
        {
            <tr class='success'>
        }
            break;
        default:
        {
            <tr>
        }
            break;
    }

......
}
于 2017-05-10T18:40:36.133 に答える