我正在使用MVC預覽2框架來開發網站,我正在關注MVCStorefront教程以獲得對MVC的良好感受。RenderView與MVC2
你能告訴我爲什麼我不能使用RenderView()方法嗎?
我錯過了什麼,或者我可以使用View()來代替? 什麼是這些方法之間的區別..
感謝
這裏就是羅布在他的教程中使用的RenderView。
[TestMethod]
public void CatalogController_IndexMethod_ShouldReturn_Categories_And_Data_For_Parent1() {
CatalogController c = new CatalogController(_repository);
RenderViewResult result = (RenderViewResult)c.Index("Parent1", "Sub10");
CatalogController.CatalogData data = (CatalogController.CatalogData)result.ViewData;
Assert.IsNotNull(data.Category);
Assert.IsNotNull(data.SubCategory);
Assert.IsNotNull(data.SubCategory.Products);
Assert.IsTrue(data.SubCategory.Products.Count() > 0);
Assert.IsNotNull(result);
}
我不能使用RenderView。它說:「名字‘的RenderView’在目前情況下
這裏不存在的鏈接: http://www.asp.net/learn/mvc-videos/video-357.aspx
這裏從CatalogController類的指數方法:
public ActionResult Index(string category, string subcategory) {
//instantiate the service
CatalogService svc = new CatalogService(_repository);
//the ViewData class
CatalogData data = new CatalogData();
//pull all the categories for the navigation
data.Categories = svc.GetCategories();
//pull the category based on subcategory name
data.Category = data.Categories.WithCategoryName(category);
//catch for bad data
if (data.Category == null) {
data.Category = data.Categories.DefaultCategory();
data.SubCategory = data.Category.SubCategories[0];
} else {
data.SubCategory = data.Categories.WithCategoryName(subcategory);
//catch for bad SubCategory
data.SubCategory= data.SubCategory ?? data.Category.SubCategories[0];
}
return RenderView("Index",data);
}
我也有在類型爲包含數據的CatalogData類型中的結果.ViewData的問題。它表示:無法將類型System.Web.Mvc.ViewDataDictionary轉換爲Commerce.MVC.Web.Controllers.CatalogController.CatalogData
你爲什麼要使用預覽版2?釋放候選人現在不在。也可能是最好的解釋你想使用這種方法的情況。 – LiamB 2010-01-10 19:51:39
聽起來,他在談論ASP.NET MVC 1.0預覽版2(這是1歲以上),而不是ASP.NET MVC 2預覽版2(這只是幾個月前)。 – Eilon 2010-01-10 20:02:51
伯納德,你指的是哪一個Rob的教程?請提供一個鏈接。聽起來好像真的很老。此外,您正在顯示單元測試代碼,而不是控制器代碼。我沒有看到「RenderView」在那裏被使用 - 只是一個RenderViewResult(它不再存在 - 它現在被稱爲ViewResult)。 – Eilon 2010-01-10 20:05:10