2014-10-20 76 views
-1

我怎麼可以超載控制器中的操作。asp.net mvc 4. 0 - 多個動作來呈現數據到相同的視圖

public ActionResult OnlineHome() 
     { 
      OnlineDataModel dm = new OnlineDataModel(); 
      dm.CatagoryData = new List<category>(); 
      dm.ProductData = new List<product>(); 
      dm.CatagoryData = db.categories.ToList(); 
      return View(dm); 
     } 

     [HttpPost] 
     public ActionResult OnlineHome(int CategoryId) 
     { 
      OnlineDataModel dm = new OnlineDataModel(); 
      dm.CatagoryData = new List<category>(); 
      dm.ProductData = new List<product>(); 

      dm.CatagoryData = db.categories.ToList(); 
      Convert.ToInt32(CategoryId) select p).ToList() ; 
      var data= db.products.Where(d => d.CategoryID == CategoryId).ToList(); 
      dm.ProductData = data.ToList(); 
      ViewBag.data = data; 
      return View(dm); 
     } 


     [HttpPost] 
     public ActionResult OnlineHome(OnlineDataModel data) 
     { 
      return View(); 
     } 

請大家幫忙。我怎麼可以超載的行動,將呈現數據相同的看法

回答

0

如果你想讓你的代碼重載,你可以使用ActionName屬性。

[ActionName("MyOverloadedName")] 

要渲染相同的視圖,您可以像這樣傳遞模型和視圖名稱。

return View("ViewName",model); 
0

可以提供ActionName屬性不同的名字,同時從視圖中調用它。像

[ActionName("OnlineHomeWithCategoryId")] 
public ActionResult OnlineHome(int CategoryId) 
{ 
} 

[ActionName("OnlineHomeWithData")] 
public ActionResult OnlineHome(OnlineDataModel data) 
{ 
} 

現在你只需要使用這些動作的名稱,同時調用這些動作實現方法具

+0

按照ActionName屬性,你也必須改變你的視圖名。 – 2014-10-20 09:40:53

相關問題