-2
我有一個MVC 4部分視圖包含幾個下拉列表,但是當我在索引和其他頁面中使用這個局部視圖時,它要求我查看包設置下拉式源數據。我的問題是,我可以有一個局部視圖,它將從它自己的控制器中加載所有依賴數據,而且我不必擔心所有使用它的十個頁面中的數據源羣體。所以請指教。我們可以MVC 4部分視圖與自己的控制器和嵌入式數據源
我有一個MVC 4部分視圖包含幾個下拉列表,但是當我在索引和其他頁面中使用這個局部視圖時,它要求我查看包設置下拉式源數據。我的問題是,我可以有一個局部視圖,它將從它自己的控制器中加載所有依賴數據,而且我不必擔心所有使用它的十個頁面中的數據源羣體。所以請指教。我們可以MVC 4部分視圖與自己的控制器和嵌入式數據源
您可以創建ApplicationController
或BaseController
並在其中填寫下拉列表並在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();
}
}
您可以使用RenderAction代替RenderPartial。 – apr
謝謝,這是我一直在尋找 –