我正在尝试返回所选项目,当我调试我的代码时,视图数据轨道列表始终为空。
如何将值分配给视图数据?
public ActionResult EditParcel(int id)
{
Parcel parc = _abcSearchService.GetAbcParcel(id);
List<SelectListItem> TrackList = new List<SelectListItem>
{
new SelectListItem { Text = "Processing", Value = "Processing", Selected = true},
new SelectListItem { Text = "Out for delivery", Value = "Out for delivery"},
new SelectListItem { Text = "Delivered", Value = "Delivered"},
};
ViewData["TrackList"] = TrackList;
[HttpPost]
public ActionResult EditParcel(Parcel parcel)
{
try
{
var TrackingStatus = ViewData["TrackList"];
parcel.Tracking_Status = (string)TrackingStatus;
_abcSearchService.UpdateParcelDetails(parcel);
return RedirectToAction("Parcel", new { id = parcel.ParcelID, Controller = "ABCParcel" });
}
catch
{
return View();
}
}
下拉列表出现在我的编辑操作结果中,当我从下拉列表中选择一个项目以更新项目时,http发布操作结果发生,视图数据TrackList为空。
这是我的观点
<div class="editor-label">
<%: Html.LabelFor(model => model.Tracking_Status) %>
</div>
<div class="editor-field">
<%: Html.DropDownList("TrackList", (List<SelectListItem>)ViewData["TrackList"])%>
<%--<%: Html.EditorFor(model => model.Tracking_Status) %>--%>
<%: Html.ValidationMessageFor(model => model.Tracking_Status) %>
答案 0 :(得分:1)
使用以下行代替从POST操作中的下拉列表中获取所选值。
var TrackingStatus = Request["TrackList"];