同じビューで似た処理が複数あるな。
とか
部分ビューにする程ではないけど、他のビューでも似たような処理をしているな。
とか、View作成中に似たり寄ったりの View があった際に、
共通化なりできないかで調べました。
共通化については拡張メソッドにて対応する事も可能ですが、
以下のように @helper を使用する事でも対応可能です。
で、以下は例です。
例では、 FizzBuzz を関数として定義しています。
@helper FizzBuzz(int value) { var isFizz = (value % 3) == 0; var isBuzz = (value % 5) == 0; if (isFizz && isBuzz) { <span>FizzBuzz</span> } else if (isFizz) { <span>Fizz</span> } else if (isBuzz) { <span>Buzz</span> } else { <span>@value</span> } } @using (Html.BeginForm("Submit", "Home")) { <table> @for (var index = 1; index < this.Model.LoopCount; index++) { <tr> <td>@FizzBuzz(index)</td> </tr> } </table> <input type="submit" /> }
App_Code へ移動する事で異なる View からでも参照可能なようですね。