0

Pointer という整数プロパティを含むモデルがあります。次のように、Razor ビュー内でそのプロパティを使用したいと考えています。

ここに画像の説明を入力

しかし、私はエラーが発生しています...

ここに画像の説明を入力

これを解決するにはどうすればよいですか?このエラーは次の行によるものですか: int pnt = @Model.Pointer; ?

4

1 に答える 1

3

はい、一般的に @ を使いすぎています。コードはおそらく次のようになります。

@for (var i = 0; i < Model.Lists.ToList().Count; i++) {
    var pointer = Model.Pointer;
    if (i == pointer) {
        var url = "/Subscriber/List/" + i;
        <li><a href="@url">@Model.Lists.ToList()[i].ListName</a></li>
    }
}

実際の質問とは別に、HtmlHelper クラスにいくつかの拡張機能を作成することを検討することをお勧めします。つまり、Html.SubscriberListItem(number) などの書き込みを許可して、懸念事項を適切に分離し、ビューをクリーンに保ちます。

もう 1 つのオプションは、ほとんどのロジックをビュー モデル (または場合によってはコントローラー) に移動することです。つまり、Model.Subscribers.Link.Uri と Model.Subscribers.Link.Text のようなものがある可能性があります。モデルがどのように見えるかによっては、これが好ましいオプションである場合もあります。(おそらく、uri も RoutingTable に接続する必要があります。)

あなたが書いたコードは例外をスローする傾向があり、ロジックをビューから移動すると、安全なコードを簡単に書くことができます.

于 2013-04-26T14:54:54.667 に答える