为所有页面添加反馈功能

时间:2012-07-22 13:48:13

标签: asp.net-mvc-3 model

我有asp.net mvc 3网站,我想为所有页面添加反馈功能。

我为此创建了局部视图,并在主布局中渲染它。

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

例如在“问题”页面中,MVC返回异常,因为该页面绑定了 POST 实体,只要我签入StackOverflow我就有2个解决方案

  • 创建父模型并添加 POST FeedbackHelper 作为属性
  • 使用元组

目前,改变所有模型对我来说风险太大。

有什么好的解决方案吗?!

1 个答案:

答案 0 :(得分:1)

您可以使用child actions。我们的想法是定义一个特定的控制器操作,该操作将为部分视图提供服务,然后使用布局中的@Html.Action帮助程序将其包含在内。

所以:

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

那么你当然会在共享文件夹中有一个部分:

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

并将其包含在您的布局中:

@Html.Action("Feedback", "ControllerContainingTheFeedbackAction")