1

The if block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.何らかの理由で、ASP.NET MVC アプリケーションでエラーが発生する理由がわかりません。

@foreach (var image in Model.Images)
{
    if (counter == Model.Images.Count - 1)
    {
        <div style="float: left; height: 250px; padding-right: 5px;">
    }
    else
    {
        <div style="float: left; height: 200px; padding-right: 5px;">
    }
    ....
    ....

上記の前は、単純に : を実行<div style="float: left; height: 200px; padding-right: 5px;">していましたが、見栄えを良くするために、この If Else が必要です。

If Else ステートメントで何が間違っていますか?

4

5 に答える 5

2

あなたの問題は、MVC パーサーがコードを解釈して、開いたままにしておくこと<div>です。2 つ開くのではなく、コードを作り直して 1 つだけを出力してみてください。

@foreach (var image in Model.Images)
{

    int height;

    if (counter == Model.Images.Count - 1)
    {
        height = 250;
    }
    else
    {
        height = 200;
    }

    <div style="float: left; height: @(height.ToString()+"px"); padding-right: 5px;">
        ...
        ...
    </div>
}

さらにコンパクトな方法で行うこともできます。

@foreach (var image in Model.Images)
{

    bool condition = (counter == Model.Images.Count - 1)

    <div style="float: left; height: @( condition ? "200px" : "250px"); padding-right: 5px;">
        ...
        ...
    </div>
}
于 2013-07-16T10:51:48.270 に答える
1

if/else を完全に次のように置き換えようとします。

 <div style="@(counter == Model.Images.Count - 1 ? "float: left; height: 250px; padding-right: 5px;" : "float: left; height: 200px; padding-right: 5px;")">
于 2013-07-16T10:51:46.420 に答える
1

これはうまくいくはずです:

@foreach (var image in Model.Images)
{
    if (counter == Model.Images.Count - 1)
    {
        <text><div style="float: left; height: 250px; padding-right: 5px;"></text>
    }
    else
    {
        <text><div style="float: left; height: 200px; padding-right: 5px;"></text>
    }
}
于 2013-07-16T10:40:55.487 に答える
0

@fromが必要かどうかを確認し、すべての前foreachに追加してみてください@:div

于 2013-07-16T12:15:05.770 に答える