0

既存の ASP.NET Webforms 3.5 アプリケーションを ASP.NET MVC 3 アプリケーションに移行しようとしています。つまり、既存の .aspx ページを、コントローラー ロジックとカミソリ ビューを使用して、Web コントロールとコード ビハインドでそれぞれ変換しようとしています。現時点では、マスター ページに焦点を当てています (他のすべてのカミソリ ビューのアナログの layout.cshtml を取得するため)。たとえば、asp:Menu、asp:LoginView などのコントロールを部分ビューと @Html.Action に置き換えて、コントローラー アクションを呼び出し、以前にそのマスターページのコード ビハインドにあったコードを実行し、その部分ビューを返します。

しかし、コードビハインドに応じて、マスターページの多くの Web コントロールが設定されている/表示されているため、迷子になっています。たとえば、マスター ページには 2 つの asp:panel があり、訪問したページに応じて表示/非表示が切り替えられます。問題は、かみそりビューでは Web コントロールがなく、コントローラーでは属性/プロパティ (プライベート int カウンターなど) を設定できないことです。したがって、私は続行する方法がわかりません...

この状況について、何らかのアイデアや経験をお持ちいただければ幸いです。不足している情報があればお尋ねください。

4

1 に答える 1

0

Controller で Model または ViewData のプロパティを設定し、@if を使用して Razor ビューでこれらを使用できます。

例えば

コントローラーで:

public ActionResult Index()
{
    ViewBag.Foo = IsThisFoo();
    View();
}

ビューで:

@if (ViewBag.Foo) {
    <p>This is foo</p>
}
else
{
    <p>This is bar</p>
}

nb: ベスト プラクティスは、ビューの強く型付けされたモデルの一部として行うことです。

于 2012-12-17T17:39:42.920 に答える