6

私のコントローラーでは、デフォルトとは異なるビューを指定したいと思います。このような :

public ActionResult EditSurvey(Int32 id)
    {

        Survey survey = _entities.Surveys.Single(s => s.Id == id);

        return View("Survey",survey);
    }

ただし、ビューを文字列( "Survey")として指定する代わりに、直接参照したいので、後でビューの名前を変更する場合は、この文字列を手動で変更する必要はありません。

だから私はこのようなものを探しています:

public ActionResult EditSurvey(Int32 id)
    {

        Survey survey = _entities.Surveys.Single(s => s.Id == id);

        return View(Views.Admin.Survey,survey);
    }
4

1 に答える 1

9

良い質問です。メソッドは文字列を想定しているため、組み込みのサポートはありませんが、 DavidEbboによって作成されたT4MVCView()と呼ばれるNiftyツールがあります。

codeplexのドキュメントには手動のインストール手順がありますが、VS2010から直接NuGetパッケージマネージャーを使用して入手することをお勧めします。

非常にシンプルで、すべてはプロジェクトに追加できるファイルです。(T4MVC.ttおよびT4MVC.settings.t4)、コードを変更するたびに、(1) T4MVC.ttを右クリックし、(2) [カスタムツールの実行]をクリックします。

これは、すべてのコントローラーとビューのサブクラス、メンバー、プロパティを含むクラスを生成します。それが行うことは、画像、css、jsなどのすべてのコンテンツに強力なタイプを作成することです(これは素晴らしいと思います)

例:
これ

@Html.RenderPartial("DinnerForm");

だろう:

@Html.RenderPartial(MVC.Dinners.Views.DinnerForm);

これ:

@Html.ActionLink("Delete Dinner", "Delete", "Dinners", new { id = Model.DinnerID }, null)

代わりにこれになります:

@Html.ActionLink("Delete Dinner", MVC.Dinners.Delete(Model.DinnerID))

これ :

<img src="/Content/nerd.jpg" />

代わりにこれになります:

<img src="@Links.Content.nerd_jpg" />

ttビューやコントローラーを変更するたびに、前述のようにファイルを右クリックして[カスタムツールを実行]する必要がありますが、これを自動化する場合は、 Chirpyをチェックしてください

T4MVCのドキュメントにはaspx / mvc2の例がありますが、MVC3 / Razorアプリを使用した本番環境で使用しているため、MVC3では正常に動作します)

SOのT4MVCタグも参照してください。

于 2011-02-24T13:08:48.390 に答える