我从 MVC5 开始,并从MVC5 Getting Started创建了第一个项目。
现在尝试使用部分渲染并在 MoviesController 中添加一个方法,如下所示
[ChildActionOnly]
public ActionResult PriceRange()
{
var maxprice = db.Movies.Max(m => m.Price);
var minprice = db.Movies.Min(m => m.Price);
ViewBag.MaxPrice = maxprice;
ViewBag.MinPrice = minprice;
return PartialView();
}
它将 Movies 集合中的 Min 和 Max 价格设置到 ViewBag 中,稍后在视图中显示。我正在尝试在不同的视图上渲染它。
首先,我尝试将其渲染Views/Movies/Index.cshtml
如下
@{Html.RenderAction("PriceRange");}
它在那里运行良好并且结果显示正确,因为它使用的是定义MoviesController
方法的同一个类PriceRange
。
然后我尝试使用以下代码(首先传递动作名称然后控制器名称)在Views/Hello/Index.cshtml
(此视图正在使用)处呈现它HelloWorldController
@{Html.RenderAction("PriceRange", "MoviesController");}
这里给出运行时错误
找不到路径“/HelloWorld/Index”的控制器或未实现 IController。
这是来自 Views/Hello/Index.cshtml 的完整代码
@{
ViewBag.Title = "Movie List";
}
<h2>My Movie List</h2>
<p>Hello from our view template</p>
@{Html.RenderAction("PriceRange", "MoviesController");}
我通过谷歌找到了几个例子,他们以同样的方式调用 RenderAction 助手,首先传递动作名称然后控制器名称。
我不明白我在这里做错了什么。有人可以指出吗?