1

モデル @model.topics を使用するマスターページを取得しました。モデル @model.ContactUsModel を使用する部分ビューを作成しました。マスター ページでそのビューをレンダリングしていますが、次のエラーが表示されます: モデル アイテムディクショナリに渡されるタイプは「Nop.Web.Models.Common.topics」ですが、このディクショナリにはタイプ「Nop.Web.Models.ContactUsModel」のモデル項目が必要です。

を使用して部分ビューを呼び出しています:

 @Html.Partial("Contact")

ここで私が間違っていることについての提案やアドバイス

4

2 に答える 2

2

使ってみて

@Html.Action("Contact")

これが機能するには、アクションが a を返す必要がありPartialViewます。その後、適切なモデルでレンダリングできます

public ActionResult Contact()
{
   blabla, some code
   return PartialView(myContactUsModelObject);
}

@Html.Partial()部分ビューをレンダリングします。controller
でアクションを呼び出しません。 このメソッドを使用してモデルを次のように指定することもできます: モデルを指定しない場合、デフォルトでページ モデルが指定され 、それがコードで発生しました。
@Html.Partial("Contact",someObject)

@Html.Action()controllerでアクションを呼び出します。
そして、どんな種類の結果を与えるかは行動次第です。

これが役立つことを願っています

于 2011-10-26T12:39:43.360 に答える
2

部分的にビューをレンダリングするだけです。アクションはコントローラーを呼び出し、ビューをレンダリングします。そのため、ビューにコントローラー (ViewBag など) によって提供されるコードが必要な場合は、Action() を呼び出す必要があります。それ以外の場合は、View() を呼び出します。

于 2011-10-26T13:01:04.447 に答える