我是ASP.NET MVC的新手,我被困在一個點上。我正在分類網站上工作。我的情況是,我有許多類別,用戶可以在其中發佈廣告,並且每個廣告類別具有不同的視圖。我創建了一個控制器動作像ASP.NET MVC有條件的ViewModel抽象
public ActionResult PostAd(string CategoryName, string SubCategoryName)
{
if(categoryName == "Vehicle" && SubCategoryName == "Cars")
{
var model = new CarAdViewModel();
// set CarAdViewModel properties...
return View("CarAdCreateView", model);
}
else if(categoryName == "Vehicle" && SubCategoryName == "Bikes")
{
var model = new BikeAdViewModel();
// set BikeAdViewModel properties...
return View("BikeAdViewModel", model);
}
else if(categoryName == "Property" && SubCategoryName == "RentHouse")
{
var model = new RentHouseAdViewModel();
// set RentHouseAdViewModel properties...
return View("RentHouseAdViewModel", model);
}
else................... so on and so on
}
我的問題是我有大量的類別和子類別幾乎60 +。如果我繼續爲60多個類別和子類別編碼,我的PostAd
方法將會爆炸並變得難以管理。
請告訴我一些最佳實踐或模式,可以讓我擺脫這個問題。
你真的確認你需要爲每個類別有不同的看法?你爲什麼這麼認爲? –
@MystereMan我的所有廣告字段都與CarAd的不同:BodyType,Make,Model,MechanicalCondition等,RentHouse有:NumberOfRooms,NumberofBathroom,IsFurnished,HasAttachedBath等等。告訴我是否有其他方法? –
視圖和操作方法需要根據其邏輯進行更改,而不一定基於數據或字段。你可以根據集合類型在視圖中渲染不同的字段..你應該看看EditorTemplates http://coding-in.net/asp-net-mvc-3-how-to-use-editortemplates/ –