我希望使用MVC和renderpartial來生成一個菜單,但是無法讓它正常工作,而且從我看來,似乎RenderAction可能更適合。但我還沒有得到它的工作。MVC中RenderAction的問題3
我打算做的就是創建一個控制器,選擇從將作爲類行爲(這是投入的HomeController)一個數據庫中的某些文章:
public ActionResult MenuController()
{
var movies = from m in db.Art
where m.ArtikelNr.StartsWith("Webcat")
select m;
return View(movies);
}
,然後發送信息到一個視圖:
@model IEnumerable<xxxx.Models.Art>
@{
Layout = null;
}
<ul>
@foreach (var item in Model)
{
<li>@Html.DisplayFor(modelItem => item.Benämning_10)</li>
}
這工作時,我只要運行它作爲一個正常的控制器和視圖,它返回的我想要的清單。但是,如果我想從_layout.cshtml調用它(因爲此菜單應該會出現在每一頁上)這樣的:
<div id="sidebar">@Html.RenderAction(MenuController)</div>
然後,它會生成以下錯誤:
CS0103: The name 'MenuController' does not exist in the current context
什麼是正確的方法從_layout.cshtml文件中調用動作/視圖/任何內容?
感謝您提供這些提示,我已經實現了它們(仍然出現錯誤CS1502),但是在global.asax中有一個工作規則是什麼意思?規則是什麼? – Dennis 2012-02-08 11:38:08
我只想說我現在能夠正常工作,出於某些原因,除非它是這樣鍵入的,否則任何人都可以向我解釋爲什麼這會起作用?'
對於global.asax,我建議在修改標準規則(/ {controller}/{action}/{id})時確保遵守規則,否則將無法找到該操作。對於第二個技巧,你正在完成一項功能。尋找更多信息http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx – Iridio 2012-02-08 13:42:47