ASP.NET中Html.PartialとHtml.アクションの違い
Html.Partialは通常、静的なコンテンツを表示します.指定したPartialメソッドでバインドされているパラメータではなく、デフォルトではホストページのModelタイプです.そのため、PartialページのModelとホームページのModelタイプが一致しない場合は、必ずPartialメソッドでバインドされているパラメータを指定してください.そうしないと、エラーが発生します.Html.Partialメソッドもアクションメソッドをトリガーしません.
Html.ActionはActionメソッドを呼び出し、特定のActionで返される値に基づいて、ViewまたはPartialView、またはJsonなどを返します.
したがって、異なるModelを用いると、Htmlを用いることが考えられる.アクションで処理します.コードの一部を説明します.
以下の方法について、
ActionメソッドGetリクエスト時にバインドパラメータが設定されていない場合、vmはデフォルトのnewを取得します.
Test2_Index()オブジェクト.バインドパラメータが設定されている場合は、設定値に従ってActionメソッドに渡されます.
Html.ActionはActionメソッドを呼び出し、特定のActionで返される値に基づいて、ViewまたはPartialView、またはJsonなどを返します.
したがって、異なるModelを用いると、Htmlを用いることが考えられる.アクションで処理します.コードの一部を説明します.
- @model MvcApplication1.Views.Test2.Test2_Index
- @{
- ViewBag.Title = "Index";
- }
-
- <h2>Test2-Indexh2>
- @Model.i<br />
-
- @*** action ,PartialIndex.cshtml
- Model Index.cshtml Model ,
- Model, 。
- *@
-
- @Html.Partial("PartialIndex",new MvcApplication1.Views.Test2.Test2_ParitalIndex())<br />
-
- @*
- ** action , Model Test2_ParitalIndex
- *@
- @Html.Action("PartialIndex", "Test2")<br />
- @model MvcApplication1.Views.Test2.Test2_ParitalIndex
- TestPartial<br />
- @Model.i<br />
- public class Test2Controller : Controller
- {
- public ActionResult Index(Test2_Index vm)
- {
- return View("Index",vm);
- }
-
- public ActionResult PartialIndex(Test2_ParitalIndex vm)
- {
- return View("PartialIndex", vm);
- }
- }
以下の方法について、
- public ActionResult Index(Test2_Index vm)
- {
- return View("Index",VM);
- }
ActionメソッドGetリクエスト時にバインドパラメータが設定されていない場合、vmはデフォルトのnewを取得します.
Test2_Index()オブジェクト.バインドパラメータが設定されている場合は、設定値に従ってActionメソッドに渡されます.