-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
谢谢,这是我一直在寻找 –