首页 > 解决方案 > MVC - 如何在使用下拉列表时返回多个属性

问题描述

所以基本上你可以参考这个,以便清楚地了解我想在我的网站上实现的目标。
相应的输入如PriceItem将从数据库中获取所选礼品篮的信息并附加在输入标签内,以便用户可以调整价格或添加客户想要的一些物品。

在选择礼品篮之前。 在此处输入图像描述

选择礼品篮后。 在此处输入图像描述

是否有任何参考或示例可以参考以实现此功能

标签: c#asp.netasp.net-mvc

解决方案


1- 在下拉列表中添加 htmlAttributes onchange

  @Html.DropDownListFor(model => model.GiftBasket, null, "--Select Gift Basket--", htmlAttributes: new { @class = "form-control ", onchange = "getprice()" }

2-插入下面的脚本以从控制器获取价格和项目

<script>
    //get price & Item
    function getprice() {
    var strSelected1 = "";
    $("#GiftBasket option:selected").each(function () {
        strSelected1 += $(this)[0].value;
    });
    $.ajax({
        url: "/your-Controller/getGiftBasket?GiftBasketID=" + strSelected1,
        type: "post",
        cache: false,



        success: function (result) {

            
            document.getElementById('price').value = result[0].price;
            document.getElementById('item').value = result[0].item;
           

        },

        error: function () {
            alert("something wrong");
        }
    });
};
</script>

3-在 JsonResult 下面插入控制器

[HttpPost]
        public JsonResult getGiftBasket(int? GiftBasketID)
        {
            

            var GiftBasketitem = db.Giftitem.Where(e => e.GiftBasketID== GiftBasketID).Select(e => new { e.item,e.price });
            return Json(GiftBasket, JsonRequestBehavior.AllowGet);
        } 

推荐阅读