如何从下拉列表中获取所选值并将其提交到我的详细信息视图?

时间:2014-01-14 10:26:44

标签: c# jquery asp.net asp.net-mvc razor

我有一个mvc剃刀形式。我想要的是从项目下拉列表中提交用户的选择并导航到详细信息视图,以便访问所选项目的信息。

目前,当我点击提交按钮时,我会成功导航到详细信息视图,但绝对没有数据显示在那里。

所选值必须来自我在视图中使用jquery构建的Items下拉列表...

正如你所看到我试图使用" ItemsID"但是当我用刹车点检查我的详细信息视图时,我得到的只是null。

你能帮帮我吗?

查看:

@using (Html.BeginForm("Details", "Bookings", FormMethod.Post))
{
<fieldset>
    <legend> Type/Item</legend>
    <label for="Items">Item Types </label>
    @Html.DropDownList("department", ViewBag.ItemTypesList as SelectList, "Select a Type", new { id = "ItemTypeID" })
    <div id="ItemsDivId">
        <label for="Items">Items </label>
        <select id="ItemsID" name="Items"></select>
    </div>
    <p>
        <input type ="submit" value="Submit" id="SubmitID" />
    </p>
 </fieldset>
}


    <script type="text/javascript">

        $('#ItemTypeID').on('change', function () {
            $.ajax({
                type: 'POST',
                url: '@Url.Action("GetItemTypeForm")',
            data: { itemTypeId: $('#ItemTypeID').val() },
            success: function (results) {
                var options = $('#ItemsID');
                options.empty();
                options.append($('<option />').val(null).text("- Select an Item -"));
                $.each(results, function () {
                    options.append($('<option />').val(this.ItemsID).text(this.Value));
                });
            }
        });
    });
</script>

控制器:

public ActionResult Details(string ItemsID)
        {
            var item = db.Items.Find(ItemsID);

            return View(item);
        }

[HttpPost]
        public JsonResult GetItemTypeForm(string itemTypeId)
        {
            //pseudo code
            var data = from s in db.Items
                       where s.ItemType.ItemTypeName == itemTypeId
                       select new { Value = s.ItemName, ItemsID = s.ItemId };


            return Json(data);
        }

1 个答案:

答案 0 :(得分:0)

谢谢大家的关注,

正确答案是使用“项目”