0

作爲一個新手,請原諒我的小問題。 (ASP.Net MVC4)在ASP.Net的一個頁面中的多個下拉列表中填充多個表格數據MVC4

閱讀大量的帖子/教程後,我仍然不確定如何處理。我想要做的是在我的索引頁面上有三個Dropdownlists。例如,國家,公司,分公司。我有他們使用EF鏈接到我的數據庫相同的數據模型。我已經設法列出索引頁面上的所有數據。不過,我需要他們在下拉列表中。

問題是我該如何創建控制器?目前控制器的樣子:

public class HomeController : Controller 
{ 
    private CorpCostEntities db = new CorpCostEntities(); 

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

    ... 
    ... 

} 

我需要創建單獨的的ActionResult方法對每個表填充數據?或者我是否使用索引()的方法超載,例如索引(國家/地區),索引(公司比較),索引(分支)?

下一個問題是因爲會有difefernt ActionResult方法,我需要爲此創建單獨的視圖?我使用簡單的MVC結構。我沒有ViewModel或MVC以外的東西。

什麼方法首先爲多個下拉列表創建控制器,然後在現有View頁面中顯示它們?

感謝您的幫助。

回答

0

不,你不應該需要爲每種類型的單獨行動,我只想在ViewBag折騰這些價值觀並閱讀視圖(Here is how to load it into dropdown element):

公共類HomeController的:控制 { 私人CorpCostEntities D b;

public HomeController(){ 
db = new CorpCostEntities(); 
ViewBag.CountryList = db.GetCountryList(); 
ViewBag.CompanyList = db.GetCompanyList(); 
ViewBag.BranchList = db.GetBranchList(); 
} 
public ActionResult Index() 
{ 
    return View(); 
} 

}

關於「下一個問題是,因爲會有difefernt ActionResult的方法,我需要爲創建單獨的意見?」,我爲你是問什麼樣的不清楚,但我會給它一個假設....把你的(GET)ActionResults看成頁面(你的動作方法不只是鎖定在返回'頁面'中,而是與我一起)。假設您有一個顯示客戶列表的操作「索引」,您將擁有索引操作和索引視圖。現在,添加一個Edit屏幕,這將是另一個Action,Edit和View,Edit.cshtml。

+0

謝謝。非常感謝你的幫助@TNCodeMonkey。我的意思是每個View的每個ActionResult方法。像Index(),Index.cshtml一樣。如果我的索引頁上有所有內容(例如生成報告的過濾器)然後我創建一個View頁面並將所有內容放入Index()方法中? – shaz

+0

@shaz完全沒有問題,很高興我們得到了另一個ASP.NET MVC的:)。如果你所需要的僅僅是一頁,那對你來說工作得很好;如果您的用戶將訪問索引頁面並僅在其中進行交互。我通常在我的控制器中混合使用View方法和Operational/Functional方法,因爲我沉浸在jQuery,JS和AJAX中,所以適用於我。最後,它真正歸結爲您的應用程序所需的內容,您知道的內容以及您感到滿意的內容。 – TNCodeMonkey

+0

確實。作爲ASP.Net MVC中的新手,遍佈各處的文檔雜亂無章,恐怕無濟於事。我只需要索引頁面和一個網格視圖來將搜索結果填入它。 – shaz

0

您可能還想考慮創建一個ViewModel(CorpCastViewModel),其中包含呈現視圖所需的所有對象。

然後,您將擁有一個用於實際CorpCostModel的屬性,還可以查找您的查看中需要的查找集合和其他內容。

比你可以創建如下編輯: @ Html.EditorFor(型號=> model.CorpCostModel.SomeField) 和一個列表框爲 @ Html.DropDownListFor(型號=> model.CorpCostModel.CorpCountryId,新的SelectList (Model.CountryList,「CountryId」,「CountryName」),「」)

相關問題