Asp.net mvc ASP.NET MVC 4-门户网站

Asp.net mvc ASP.NET MVC 4-门户网站,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我是MVC4的新手,请容忍我。我正在构建一个门户,在那里用户将看到不同的小部件。让我们假设小部件是一些带有标题和内容的矩形框。有什么更好的方法来实现这一点?我计划使用局部视图。然后在聚合视图上调用Html.renderaction。这是一个好的选择还是有更好的方法 2.)此外,当小部件遇到任何异常时,我希望在小部件区域显示一条自定义错误消息。我不希望整个页面被重定向到错误页面。只有矩形区域。@Html.RenderAction应该可以完成这项工作,对于例外情况,try/catch可以帮助您: [

我是MVC4的新手,请容忍我。我正在构建一个门户,在那里用户将看到不同的小部件。让我们假设小部件是一些带有标题和内容的矩形框。有什么更好的方法来实现这一点?我计划使用局部视图。然后在聚合视图上调用Html.renderaction。这是一个好的选择还是有更好的方法


2.)此外,当小部件遇到任何异常时,我希望在小部件区域显示一条自定义错误消息。我不希望整个页面被重定向到错误页面。只有矩形区域。

@Html.RenderAction
应该可以完成这项工作,对于例外情况,try/catch可以帮助您:

[ChildActionOnly]
public ActionResult Widget(int id) {
    try
    {
      var widget = Repository.GetWidget(id);
      return PartialView(widget);
    }
    catch
    {
      return PartialView("WidgetErrorPage");
    }
}
更新: 在这种情况下,您可以使用
ActionFilter
来处理异常,如下所述:

然后像这样装饰您的所有小部件操作:

 [ChildActionOnly]
 [WidGetHandleException]
 public ActionResult Widget() 
 {

 }

非常感谢。有没有一种集中的方法来处理和重定向异常,而不是在每个操作中都这样做?我想你只需要使用一个操作就可以根据一个id呈现所有的小部件,你也可以像这里解释的那样设置自定义错误,但我不确定这在这种情况下对你有帮助,AFAIK将呈现完整页面错误,而不是部分页面。我有许多小部件。我的网站主要由小部件组成。因此,对于那些使用
ActionFilter
alternative的widgetsUpdated答案,我将有很多操作方法
 [ChildActionOnly]
 [WidGetHandleException]
 public ActionResult Widget() 
 {

 }