2016-09-15 56 views
-2

我有一個MVC 4部分視圖包含幾個下拉列表,但是當我在索引和其他頁面中使用這個局部視圖時,它要求我查看包設置下拉式源數據。我的問題是,我可以有一個局部視圖,它將從它自己的控制器中加載所有依賴數據,而且我不必擔心所有使用它的十個頁面中的數據源羣體。所以請指教。我們可以MVC 4部分視圖與自己的控制器和嵌入式數據源

+1

您可以使用RenderAction代替RenderPartial。 – apr

+0

謝謝,這是我一直在尋找 –

回答

0

您可以創建ApplicationControllerBaseController並在其中填寫下拉列表並在partial中使用它。例如看到這一點:

的ApplicationController

public class ApplicationController : Controller 
    { 
    public ApplicationController() 
     { 
      ///RoomNum list 
      List<SelectListItem> RoomNumitems = new List<SelectListItem>(); 
      RoomNumitems.Add(new SelectListItem 
      { 
       Text = "1", 
       Value = "1" 
      }); 
      RoomNumitems.Add(new SelectListItem 
      { 
       Text = "2", 
       Value = "2" 
      }); 
      RoomNumitems.Add(new SelectListItem 
      { 
       Text = "3", 
       Value = "3" 
      }); 
      RoomNumitems.Add(new SelectListItem 
      { 
       Text = "4", 
       Value = "4" 
      }); 

      ViewData["RoomNumListItems"] = RoomNumitems; 
      /// 

      ///From_Price list 
      List<SelectListItem> From_Price_items = new List<SelectListItem>(); 
      From_Price_items.Add(new SelectListItem 
      { 
       Text = "30000", 
       Value = "30000" 
      }); 
      From_Price_items.Add(new SelectListItem 
      { 
       Text = "50000", 
       Value = "50000" 
      }); 
      From_Price_items.Add(new SelectListItem 
      { 
       Text = "70000", 
       Value = "70000" 
      }); 
      From_Price_items.Add(new SelectListItem 
      { 
       Text = "100000", 
       Value = "100000" 
      }); 

      ViewData["From_PriceListItems"] = From_Price_items; 
      /// 

      ///To_Price list 
      List<SelectListItem> To_Price_items = new List<SelectListItem>(); 
      To_Price_items.Add(new SelectListItem 
      { 
       Text = "100000", 
       Value = "100000" 
      }); 
      To_Price_items.Add(new SelectListItem 
      { 
       Text = "150000", 
       Value = "150000" 
      }); 
      To_Price_items.Add(new SelectListItem 
      { 
       Text = "250000", 
       Value = "250000" 
      }); 
      To_Price_items.Add(new SelectListItem 
      { 
       Text = "500000", 
       Value = "500000" 
      }); 
      To_Price_items.Add(new SelectListItem 
      { 
       Text = "1000000", 
       Value = "1000000" 
      }); 
      ViewData["To_PriceListItems"] = To_Price_items; 
    } 
} 

局部視圖

<div class="row"> 
    <div class="large-4 columns admin-lbl-fildset push-8 columns"> 
     @Html.Label("Room number:") 
    </div> 
    <div class="large-8 columns admin-txt pull-4 columns"> 
     @Html.DropDownList("RoomNum_SelectedItem", (IEnumerable<SelectListItem>)ViewData["RoomNumListItems"], new { @class = "admin-dropdown" }) 
    </div>  
</div> 
<div class="row"> 
    <div class="large-3 columns admin-lbl-fildset push-3 columns"> 
     @Html.Label("To:") 
    </div> 
    <div class="large-3 columns admin-txt pull-3 columns"> 
     @Html.DropDownList("To_Price_SelectedItem", (IEnumerable<SelectListItem>)ViewData["To_PriceListItems"], new { @class = "admin-dropdown" }) 
    </div> 

    <div class="large-3 columns admin-lbl-fildset push-3 columns"> 
     @Html.Label("From:") 
    </div> 
    <div class="large-3 columns admin-txt pull-3 columns"> 
     @Html.DropDownList("From_Price_SelectedItem", (IEnumerable<SelectListItem>)ViewData["From_PriceListItems"], new { @class = "admin-dropdown" }) 
    </div>  
</div> 

Cotrollers(例如家庭)

public class HomeController : ApplicationController 
    { 
     // 
     // GET: /Home/ 
     public ActionResult Index() 
     { 
      return View(); 
     } 

    } 
相關問題