如何从我的下拉列表中获取值

时间:2014-03-20 14:39:41

标签: asp.net-mvc asp.net-mvc-3

我正在尝试返回所选项目,当我调试我的代码时,视图数据轨道列表始终为空。

如何将值分配给视图数据?

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) %>

1 个答案:

答案 0 :(得分:1)

使用以下行代替从POST操作中的下拉列表中获取所选值。

var TrackingStatus = Request["TrackList"];