[英]Passing data from controler to view using viewdata
我有一個控制器和一個視圖,我想填充一個下拉列表。
我的控制器如下所示:
namespace AAA.Controllers
{
public class BBBController: Controller
{
[HttpPost]
public ActionResult Sort_Order()
{
List<SelectListItem> liSort = new List<SelectListItem>();
liSort.Add(new SelectListItem() { Text = "--Select--", Value = "0", Selected = true });
liSort.Add(new SelectListItem() { Text = "ASC", Value = "1" });
liSort.Add(new SelectListItem() { Text = "DESC", Value = "2" });
ViewData["ddSort"] = liSort;
return View();
}
}
}
我的視圖如下所示:
@model IEnumerable<AAA.Models.xyz>
@{
ViewBag.Title = "List";
}
<br />
<h2>List</h2>
<table class="table">
<tr>
<th>
Sort order
</th>
</tr>
<tr>
<td>
@using (Html.BeginForm("Sort_Order", "BBB", FormMethod.Post))
{
@Html.DropDownList("Sort", ViewData["ddSort"] as IEnumerable<SelectListItem>, new { @class = "form-control", @style = "width:200px; height:30px" })
}
</td>
</tr>
</table>
運行此命令時出現錯誤:
沒有類型為“ IEnumerable <SelectListItem>”的ViewData項目具有鍵“ Sort”。*
有人可以幫助我,告訴我我做錯了什么嗎?
您需要在GET方法中初始化ViewData["ddSort"]
。 然后,您可以在視圖中使用它。
[HttpGet]
public ActionResult Sort_Order()
{
List<SelectListItem> liSort = new List<SelectListItem>();
liSort.Add(new SelectListItem() { Text = "--Select--", Value = "0", Selected = true });
liSort.Add(new SelectListItem() { Text = "ASC", Value = "1" });
liSort.Add(new SelectListItem() { Text = "DESC", Value = "2" });
ViewData["ddSort"] = liSort;
return View();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.