25

以下は、私のASPMVC3インデックスページの1つにあるテーブルの最初の行の最初のセクションです。そのページが読み込まれたときにコードをステップ実行しましたが、条件の評価が適切に行われていることがわかりますが、「CE」または「PT」は表示されません。私はASPMVCにかなり慣れていませんが、誰かが構文を手伝ってくれたり、何が起こっているのか説明してもらえますか?

@foreach (var item in Model.Where(i => i.Status != "C")) {
var Id = item.Id;
<tr>
    <td>
    @if (!String.IsNullOrWhiteSpace(item.TableName))
    {
        if (item.TableName.Equals("AgentContEd"))
        {
            @Html.DisplayText("CE");
        }
        else if (item.TableName.Equals("AgentProductTraining"))
        {
            @Html.DisplayText("PT");
        }
        else
        {
            @Html.DisplayFor(modelItem => item.TableName)
        }             
    }           
    </td>
4

4 に答える 4

33

サーバー側のコードに他のhtmlがない場合は、@:またはを使用してサーバー側のコード内にhtmlテキストを指定します。<text></text>

if (item.TableName.Equals("AgentContEd"))
{
    @:CE
}
else if (item.TableName.Equals("AgentProductTraining"))
{
    <text>PT</text>
}
于 2013-01-17T20:31:11.537 に答える
18

テキストを表示する方法は5つあります。文字列を表示するには、次を使用する必要があります

@Html.DisplayName(string)
于 2014-09-18T23:19:17.420 に答える
11

DisplayTextはModel.PropertyNameの同義語です。したがって、Model.PropertyName = @ Html.DisplayText('PropertyName')

したがって、CEがモデルの属性ではなく、生のテキストを出力しようとしている場合は、そのステートメントを生のテキストに置き換えるだけではありません。

        if (item.TableName.Equals("AgentContEd"))
        {
            <text>CE</text>
        }
于 2013-01-17T20:27:30.557 に答える
2

リテラルテキストを表示しようとしていることをRazorに認識させる必要があります。詳細については、この優れた
Razor構文ガイドを参照してください。

if (item.TableName.Equals("AgentContEd")) { <text>CE</text> }

于 2013-01-17T20:32:07.150 に答える