2011-10-17 42 views
-1

我創建了一個自定義模型,即支持我的Razor視圖。然後,我創建了一個控制器following`namespace MyCandidate.ControllersMVC3的奇怪行爲

public class CandidateViewModelController : Controller 
{ 
    // 
    // GET: /CandidateViewModel/ 

    public ActionResult Index() 
    { 
     return View(); 
    } 

} 

我也有下面的語句在我_Layout.cshtml

@Html.ActionLink("Canid", "Index", "CandidateViewModel") 

接下來,我創建了一個視圖,該視圖的第一個語句是

@model MyCandidate.Models.CandidateViewModel 

當我運行項目中,我得到以下錯誤

The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched: 

我花了3個多小時,但無法弄清楚?

回答

0
  1. Index()得不到任何參數,但你送"CandidateViewModel")添加Index(string input)方法與屬性[HttpGet]到控制器。

  2. 這個錯誤你沒有在「Views/CandidateViewModel/Index.cshtml」中查看「Index」。

  3. 也許你刪除母版頁文件(_ViewSrat,_layout)

  4. 或者當你的ActionLink的改變你的路線

0

更改爲你犯了一個錯誤:

@Html.ActionLink("Canid", "Index") 

如果你想傳遞任何數據到View,你也可以使用ViewBag:

// Controller : 
ViewBag.CandidateValues = CandidateViewModelData; 

// View 
@Html.Label("LabelName", (CandidateViewModel) ViewBag.CandidateValues.FiledName); 
+0

謝謝@ Amir978。上週我剛剛開始創建MVC3時,我有很多問題。我的意思是從Asp Forms和Nhibernate移到EF4.1和MVC3。好的,如果你能幫我解決另一個問題。大多數情況下,我們的視圖都是基於多個對象或換句話說基礎表。因此,我們需要先對它進行建模,即爲每個輸入字段創建一個具有屬性的自定義類,然後將視圖基於此模型。此外,如果你可以指示我一些有用的鏈接。 – akberali

+0

@akberali如果您將爲每個視圖創建視圖模型,並使用一些您需要的屬性(請參見我的答案),那麼要更好一些(請參閱此處的答案)http://stackoverflow.com/questions/7539069/how-should-we-pass-a-data -a-a-view-in-a-big-asp-net-mvc-web-site/7539144#7539144 –

+0

@akberali我很樂意儘可能地幫助你。首先,我建議你在ASP.NET網站上觀看所有Pluralsight MVC電影免費! (http://beta.asp.net/mvc)你會在那裏找到很多關於你的問題的答案。請不要猶豫,問你的問題。對於模型,是的,爲每一組數據創建一個模型(類)是非常好的主意,重點是您可以在視圖中訪問它們(強類型模型) – Amir978