2016-09-15 58 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(); 
     } 

    } 
相关问题