在 ASP.NET MVC2 中,如何从母版页调用控制器方法?举例来说,我想在主数据中包含一些概述数据:
+--------------------------------------+
| Logo Welcome xyz|
+--------------------------------------+
| total sales this month $999 |
+--------------------------------------+
| Home | Sales | Import | Export (menu)|
+--------------------------------------+
我在销售控制器中有这个方法:
public ActionResult TotalSalesThisMonth()
{
var totalSalesModel = SalesService.GetTotalSalesThisMonth()
return View(totalSalesModel);
}
如何从母版内部调用该视图,以便它将显示在每个页面上?
你可以使用Html.Action 或 Html.RenderAction http://haacked.com/archive/2009/11/18/aspnetmvc2-render-action.aspx帮手。例如,您可以将以下内容放在主页上的某个位置:
<%= Html.Action("TotalSalesThisMonth", "SomeController") %>
这将执行控制器操作、呈现视图并将生成的 HTML 插入母版页中的指定位置。您还可以通过用以下修饰来限制此操作仅用作子操作[ChildActionOnly]
属性:
[ChildActionOnly]
public ActionResult TotalSalesThisMonth()
{
var totalSalesModel = SalesService.GetTotalSalesThisMonth()
return View(totalSalesModel);
}
最后,如果在控制器操作内您想测试它是作为正常操作还是作为子操作调用,您可以这样做:
public ActionResult TotalSalesThisMonth()
{
var totalSalesModel = SalesService.GetTotalSalesThisMonth()
if (ControllerContext.IsChildAction)
{
return View("foo", totalSalesModel);
}
return View("bar", totalSalesModel);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)