0

asp.net mvc 3 Webサイトを持っていますが、すべてのページにフィードバック機能を追加したいと思います。

この目的のために部分ビューを作成し、マスターレイアウトでレンダリングしました。

    @model FeedbackHelper
    Name:<br />
    @Html.TextBoxFor(o=>Model.Name)

たとえば、質問ページでは、 StackOverflowをチェックインする限り、そのページがPOSTエンティティにバインドされているため、MVCは例外を返します。2つのソリューションがあります。

  • 親モデルを作成し、POSTFeedbackHelperをプロパティとして追加します
  • タプルを使用する

現時点では、すべてのモデルを変更することは私にとってリスクが高すぎます。

良い解決策はありますか?!

4

1 に答える 1

1

子アクションを使用できます。@Html.Actionアイデアは、部分ビューを提供する特定のコントローラーアクションを定義し、それをレイアウトのヘルパーを使用して含めることです。

それで:

public ActionResult Feedback()
{
    FeedbackHelper model = ...
    return PartialView(model);
}

もちろん、共有フォルダにパーシャルがあります。

@model FeedbackHelper
Name:<br />
@Html.TextBoxFor(o => o.Name)

そしてそれをあなたのレイアウトに含めてください:

@Html.Action("Feedback", "ControllerContainingTheFeedbackAction")
于 2012-07-22T14:04:21.567 に答える