我是新來的MVC!在哪裏和如何加載在masterpage中使用dropdownlists
我想在MasterPage中使用的PartialView中使用兩個DropDownLists(城市,類別),這意味着它們將始終可見。
我試圖在HomeCOntroller中加載它們,但沒有奏效。我有一個例外。
我讀了一些關於做一個baseController,其他控制器將繼承,我試過,有點,但我想我做錯了什麼。
這是我今天拿到的唯一代碼:
母版
<% Html.RenderPartial("SearchForm"); %>
PartialView(SearchForm.ascx)
<% using (Html.BeginForm("Search", "Search")) { %>
<% } %> // dont know why I need two BeginForms, if I dont have this the other form won't trigger at all! Weird!
<% using (Html.BeginForm("Search", "Search", FormMethod.Get)) { %>
<%= Html.DropDownList("SearchForm.Category", new SelectList(ViewData["Categories"] as IEnumerable, "ID", "Name", "--All categories--")) %>
<%= Html.DropDownList("Search.City", Model.Cities, "--All cities--") %>
<input name="search" type="text" size="16" id="search" />
<input type="submit" id="test" title="Search" />
<% } %>
兩個問題:
- 在哪裏以及如何加載DropDownLists是問題。我試圖加載它在HomeController中,但是當轉到另一個頁面時,它說DDL是空的,我得到一個Excecption。
- 爲什麼我必須使用ActionMethod的兩種形式來觸發?
希望任何人都可以幫助我!
嘿大戴夫! Thansks爲您提供幫助! 如果即時通訊使用ActionFilter,我必須把這個actionResult放在每個使用的控制器上,對吧?我閱讀了另一個解決方案,你可以創建一個baseController並在構造函數中加載ddls,並使所有控制器都從BaseController繼承。我試過了,但我完全不明白。你認爲大戴夫怎麼樣? – n3tx 2010-07-28 15:14:00
這應該工作。只需創建一個從Controller繼承的新類(例如BaseController)。然後將您的控制器(以及任何其他需要此操作的控制器)從BaseController而不是Controller繼承。然後,您可以將CityList過濾器應用於BaseController,或者在BaseController的構造函數中設置該值 – 2010-07-28 20:51:51