ASP.NET MVC の最新バージョンでは、View がデフォルトでコード ビハインド クラスを持たなくなっていることに気付きました。
ビューまたは部分ビューにコード ビハインド クラスを追加するにはどうすればよいですか??
ASP.NET MVC の最新バージョンでは、View がデフォルトでコード ビハインド クラスを持たなくなっていることに気付きました。
ビューまたは部分ビューにコード ビハインド クラスを追加するにはどうすればよいですか??
コード ビハインド ページを部分ビューに追加する方法
これは特にトリッキーではなかったようで、かなり実行可能です。この回答は部分的に機能しましたが、通常の MVCにもViewUserControl
同じことが当てはまります。ViewPage
<view filename & extention>.cs
(つまりview.ascx.cs
)の規則で新しいクラス ファイルを追加します。
using System.Web.Mvc;
クラスに追加
クラスを Inherit from に変更しViewUserControl<>
ます。
すなわちpublic class Foo:ViewUserControl
ビューのヘッダーに次を追加します。
CodeBehind="View.ascx.cs" Inherits="Project.Views.Shared.View"
ソリューションからファイルをコピーし、ドラッグして戻し、2 つを再度関連付けます。これは、VS 2010+ および MVC 2+ では必要ない場合があります。
これを通常の MVC ビューで動作させるには、「ViewPage」からクラスを継承する必要があります。
コード ビハインド ファイルを作成している理由はわかりませんが、本当に作成する場合は、代わりに標準の Web フォーム アプローチを使用することを検討します。
ページビハインドが必要ない理由を理解するために、MVC の基本についても調べます。
分離コード ファイルを aspx ページに追加し、MVC ビューのターゲットにするには、次の手順を実行します。
Index.aspx
...という名前のビュー ページの場合
次のコードを置き換えます....
<%@ Page Inherits="System.Web.Mvc.ViewPage" %>
と
<%@ Page CodeFile="Index.aspx.vb" Inherits="Home_Index" %>
次に、Index.aspx.cs
(または.vb
) という名前のファイルを作成します。
partial class Home_Index : System.Web.Mvc.ViewPage
{...}
またはVB
Partial Class Home_Index
Inherits System.Web.Mvc.ViewPage
...
End Class
それでおしまい。唯一の特別なことは、正しいMvc.ViewPage
基本クラスを使用することです。