簡體   English   中英

如何從下拉列表中獲取所選項目並將其提交到我的詳細信息視圖?

[英]How do I get the selected item from drop down list and submit it to my Details view?

我有一個mvc剃刀形式。 我想要的是從項目下拉列表中提交用戶的選擇並導航到詳細信息視圖,以訪問所選項目的信息。

目前,當我單擊提交按鈕時,我成功導航到詳細信息視圖,但絕對沒有顯示數據。

你能幫我么?

視圖

@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 id)
        {
            var item = db.Items.Find(id);

            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);
        }

下拉列表僅發送簡單值。 名稱通常必須與方法簽名中的參數名稱匹配。 請記住,name屬性是查詢字符串中的鍵,而不是id屬性。 因此,在這個例子中使用部門和@ Murali的答案中的項目。

嘗試將您的詳細信息方法更改為

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

        return View(item);
    }

使用Items的詳細方法,如果你想獲得項目價值

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

        return View(item);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM