我從MVC5開始,並從MVC5 Getting Started創建第一個項目。MVC5 Html.RenderAction與不同的控制器
現在,隨着部分呈現嘗試,加入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();
}
它規定從電影到收藏這ViewBag稍後在視圖中顯示的最小和最大的代價。我試圖用不同的觀點來呈現它。
首先我試圖在Views/Movies/Index.cshtml
以使其如下
@{Html.RenderAction("PriceRange");}
它運作良好那裏和的結果,因爲它是使用MoviesController
,其中定義的方法PriceRange
同一類正確顯示。
然後我試圖在Views/Hello/Index.cshtml
以使其(這個視圖是使用HelloWorldController
)用下面的代碼(第一傳遞行動名字然後控制器名稱)
@{Html.RenderAction("PriceRange", "MoviesController");}
這是給運行時錯誤
路徑'/ HelloWorld/Index'的控制器未找到或未實現IController。
下面是完整的代碼查看/你好/ Index.cshtml
@{
ViewBag.Title = "Movie List";
}
<h2>My Movie List</h2>
<p>Hello from our view template</p>
@{Html.RenderAction("PriceRange", "MoviesController");}
我發現通過谷歌幾個例子,他們在呼喚幫手的RenderAction以同樣的方式,首先通過動作名稱,然後控制器名稱。
我不明白我在這裏做錯了什麼。 有人可以指出嗎?
@ Html.Action不用花括號。 – Jordan