web-dev-qa-db-ja.com

ASP.NETMVCで再利用可能なコントロールを作成する方法

ASP.NET MVC 3で「カスタムコントロール」を作成するにはどうすればよいですか?部分的なビューについて赤字です、ViewUsersControlHtml.RenderAction、しかし私はまだわかりません、どちらの方法がかみそりのビューのための適切なMVCの方法です。

表示するためにいくつかのajaxコンポーネントをレンダリングする必要がある場合、部分ビューでそれを行うことを想像できますが、カスタムロジックでセクションをレンダリングしたい場合はどうなりますか?

9
Fanda

1) PartialViews

2) カスタムHTMLヘルパー

3)子供の行動

ASP.NET Coreの更新:

2) タグヘルパー カスタムHtmlヘルパーよりも優先される方法

3) コンポーネントの表示 子アクションの代わりに使用されます

21
syned

あなたは使用することができます

@{Html.RenderPartial("YourCustomView",YourModel);}

たとえば、Sharedフォルダに新しいViewを作成し、"_MyCustomControl"という名前を付けます。

次に、コードに次のように記述します。

@model YourNameSpace.Models.YourModel

@{
    Layout = null;
}

@*Here write your control's markup*@

次に、この"control"を使用するビューに次を追加します。

@{Html.RenderPartial("_MyCustomControl",new YourModel { args });}

RenderPartialこれをチェックしてください で問題が発生した場合

この投稿に対する他のすべての回答に加えて、EditorForおよびDisplayForテンプレートの使用を提供できます。これらは、カスタムタイプを簡単にレンダリングまたは編集する場合に役立ちます。検証を適切に処理し(パーシャルを使用すると奇妙になる可能性があります)、再帰的にネストできます(これも、必要になるまで明らかに便利ではない別の機能です)。

Html.RenderAction()またはHtml.Action()を使用して、ビュー内で別のコントローラーアクションを呼び出し、結果をページにインラインで表示することもできます。これは、部分的なレンダリング、コントローラーへのインクルードコード、およびパラメーターの受け渡しを可能にするため、おそらく必要なものに最も近いものです。

リンク先:

DisplayForおよびEditorForテンプレート

アクションとRenderAction

すでに述べたように、部分ビューを使用できます。はい、最も効果的で効率的な方法である部分ビューを使用できます。

Ajaxレンダリングの場合、いつでも使用できます

     @using (Ajax.BeginForm("Details", new { id = Model.Post.PostId }, new AjaxOptions    
  {

あなたが見たいリンクのいくつか

Ajaxを使用したASP.Net MVC3 Razorでの部分ビューのレンダリング

MVC3でJQueryを使用して部分ビューをレンダリング

0
Nipun Ambastha