注文ヘッダ情報を表示するビューを作成する必要があります。ラインアイテムのグリッドを表示するpatialビューを追加する必要があります。部分的なビューは、ビューモデルから強く型付けされる。私はhtmlヘルパー@ Html.Partial( "Path/view")を使うべきであることを理解しています。私はコントローラを使ってビューを開くだけで、ビューモデルをビューに送信する前にポピュレートしていました。部分ビューはhtmlヘルパーのフォームと呼ばれているので、モデルデータで傍観ビューを設定する最も良い方法は何かを知りたいと思います。mvc razor partial viewを作成する方法
答えて
オプション1:親ページから継承します
デフォルトでは、@Html.Partial("PartialViewName")
を呼び出してレンダリングされた部分図は、親ビューに渡されたビューモデルを取得します。
あなたが持っている場合:
ビューモデル
namespace MyNamesapce
{
public OrderInfoViewModel
{
public string OrderTitle { get; set; }
public IEnumerable<OrderItem> OrderItems { get; set; }
}
}
OrderInfo.cshtml
@model MyNamespace.OrderInfoViewModel
<h1>@Model.OrderTitle</h1>
@Html.Partial("OrderLineItems")
OrderLineItemsページはそう...それに渡されたMyNamespace.OrderViewModel
を取得する必要があります部分ビューは次のようになります:
OrderLineItems.cshtml
@model MyNamespace.OrderInfoViewModel
foreach (var orderItem in Model.OrderItems)
{
//Do stuff
}
オプション2:あなたが渡されるビューモデルを指定するには、二番目のパラメータを使用することができるモデル
を指定します。私。
OrderInfo.cshtml
@model MyNamespace.OrderInfoViewModel
<h1>@Model.OrderTitle</h1>
@Html.Partial("OrderLineItems", Model.OrderItems)
OrderLineItems.cshtml
@model IEnumerable<OrderItem>
foreach (var orderItem in Model)
{
//Do stuff
}
オプション3:使用して部分的行動
あなたが複数にわたる部分図を再利用する必要がある場合ページ、それは良いかもしれないページが同じ部分的なものを使用しているという理由だけで、異なるビューモデルに同じ情報を設定する必要をなくすために、部分的なビューを使用するアイデア。
など。
ビューモデル
namespace MyNamesapce
{
public OrderInfoViewModel
{
public string OrderTitle { get; set; }
}
}
コントローラ
public class OrderController : Controller
{
public ActionResult OrderInfo(int orderId)
{
OrderInfoViewModel viewModel = GetViewModel(orderId);
return View(viewModel);
}
public PartialViewResult OrderLineItems(int orderId)
{
IEnumerable<OrderItem> orderItems = GetOrderItems(orderId);
return Partial(orderItems);
}
}
OrderInfo.cshtml
@model MyNamespace.OrderInfoViewModel
<h1>@Model.OrderTitle</h1>
@Html.Action("OrderLineItems")
OrderLineItems.cshtml
@model IEnumerable<OrderItem>
foreach (var orderItem in Model.OrderItems)
{
//Do stuff
}
部分ビューでは、通常のビューと同じようにモデルを送信するだけです。あなたのモデルは、その性質を持っていない場合
@Html.Partial("_PartialName", Model.LineItems)
さて、あなたはそれを追加するか、またはそれを別の方法を渡すことができ、次のいずれか、あなたのモデルは「LineItemsに」という名前のLineItemオブジェクトのプロパティを持っている場合たとえば、あなたは、単にこれを行うだろう、ViewBagのように(私は強く型付けされた方法を好むが、それは私のopnionです:
@Html.Partial("_PartialName", (List<LineItem>)ViewBag.LineItems)
これらの唯一の方法ではありませんが、彼らは私の好ましい方法です
- 1. WebForms iFrameでRazor Partial Viewを共有
- 2. MVC 3 with Razor with partial views
- 3. ASP.NET MVC 3 Razor Partial Viewでもレイアウトの「深さ」を指定します
- 4. View Data in mvc razor
- 5. MVC Partial ViewをJSONとして返す
- 6. nopCommerceプラグインからRazor Partial Viewを拡張します
- 7. MVC Razor ViewのHTML.Textareaの値
- 8. MVC with Razorドロップダウンリストを作成
- 9. MVC3 Razor Partial Viewはコントローラに返信しません
- 10. Umbraco Navigation - Partial View
- 11. MVC Razor Engine Render Partial View from Custom Locationまた、フォールバック検索ロケーションをサポートする必要があります
- 12. MVC3 with Ajax partial view - 作成が成功したときに "Success"アラートを表示する方法?
- 13. Microsoft.AspNet.Mvc.TagHelpersがMVC 6のRazor Viewで動作しない
- 14. MVC Web API 2でRazor ViewでViewDataが動作しない
- 15. MVCとRazorでウィザードステップを作成
- 16. mvc partial view onsubmitフォーム親ビューからデータを送信
- 17. MVC Partial Viewがajaxポストバックでモデルを返さない
- 18. Razor View Engineをダウンロードするには
- 19. MVCからシングルクォートをエスケープする3 Razor View変数
- 20. ASPNETでIQueryableオブジェクト項目を取得するMVC Razor View
- 21. ブートストラップは、anglejsで期待通りに動作しませんmvc partial view
- 22. MVC3 Razor View PopUps
- 23. ASP.Net MVC 3 Razor:動的レイアウトに情報を作成して渡す方法
- 24. MVCのRazor Viewでの検証に関する問題
- 25. C# - Razor - Partial Loginポップアップビュー、何をする? SSLが必要です
- 26. Razor Viewに再帰関数を書き込む方法は?
- 27. ASP.Net MVC jQuery Dialog Partial
- 28. MVC Razorは、提出するオブジェクトのリストを作成します。
- 29. MVC 3 RAZOR動的にテキストボックスを作成する
- 30. Silverlightアプリケーションは、MVC Razor Viewではなくaspxページで動作します。
オプション3は2よりも優先されるだろうシナリオは何ですか?私はちょうど部分的なビューを繰り返し呼び出すことはできませんでしたが、まだドライですか? – NickSuperb
オプション1と2を使用して、メインビューモデルに部分ビューに必要なすべてのデータを入力する必要があります。この質問/回答のシナリオは最善ではないので、多数のページに表示されるショッピングカートの要約ウィジェットがあるとしましょう...オプション#3を使用する方が簡単です。それ以外の場合は、ショッピングカートウィジェット(ほとんどのページ)も表示されるたびに、ショッピングカートウィジェットに必要なデータが表示されます。 – Charlino
私は、モデルを直接的にではなく間接的にパーシャルビューに連続的に流し込む必要があることを認識しました。 – NickSuperb