我有asp.net mvc 3网站,我想为所有页面添加反馈功能。
我为此创建了局部视图,并在主布局中渲染它。
@model FeedbackHelper
Name:<br />
@Html.TextBoxFor(o=>Model.Name)
例如在“问题”页面中,MVC返回异常,因为该页面绑定了 POST 实体,只要我签入StackOverflow我就有2个解决方案
目前,改变所有模型对我来说风险太大。
有什么好的解决方案吗?!
答案 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")