私は Asp.net MVC 1 を使用しています。コントローラー アクションで、コンパイル時に型チェックを強制する StronglyTyped View(data) 呼び出しを使用し、既定のビュー エンジンで aspx ページを使用できるようにしたいと考えています。私が呼び出す ViewPages は厳密に型指定されていますが、組み込みの Controller View(data) メソッドは厳密に型指定されておらず、表示を確認することさえできないため、View(data) へのアクションの呼び出しのエラーをコンパイル時にキャッチできません。コンパイル時にページが存在する場合。
この投稿を使用して部分的な解決策 (以下のコード) を実装しましたが、(1) 厳密に型指定されたビューのコード ビハインドを作成しない限り、一般的なビュー関数で強力なビュー ページのタイプを認識することができず、(2 ) この方法ではインテリセンスとリファクタリングが適切に機能しないため、使用している方法の信頼性が疑わしくなります。
質問: アクションからビューを呼び出すときに型を強制するより良い方法はありますか?
代替手段:私のアクション メソッドがビューページのインスタンスを作成し、いくつかのプロパティを直接設定し、その HTML をアクション応答にレンダリングできる代替手段はありますか?
コード: これは、これまでの内容を達成するために、すべてのコントローラーが継承する基本クラスです。
public class StrongController : Controller
{
protected ActionResult View<TView, TModel>(TModel model)
where TView : ViewPage<TModel>
where TModel : class
{
return View(typeof(TView).Name, model);
}
}
そして、使用中のコントローラーの例を次に示します。
public class HomeController : StrongController
{
public ActionResult Index()
{
return View<ExampleMVCApp.Views.Home.Index, ExampleData>(new ExampleData());
}
}
}
型認識に必要なViewPageコードビハインド... Aspxヘッダーが機能しませんでした
namespace ExampleMVCApp.Views.Home
{
public class Issue : System.Web.Mvc.ViewPage<ExampleData>
{
}
}