首页 > 解决方案 > 根据下拉选择自动填充文本框

问题描述

我想根据 MVC 中的下拉选择自动填充文本框,使用 jquery、razor 视图和控制器,来自名为 Supplier 的模型,该模型具有 SupplierID 和 Company_Registration_Number 作为变量。我已经设法将其作为级联下拉列表进行,但我无法填充@Html.EditorFor。

我的控制器:

        public JsonResult GetCompanyRegistrationNumberId(int id)
        {
           var suppliers = db.Suppliers.Where(p => p.SupplierID == id).ToList();

            var result = (from r in suppliers
                          select new
                          {
                              id = r.SupplierID,
                              name = r.Company_Registration_Number
                          }).ToList();

            return Json(result, JsonRequestBehavior.AllowGet);
        }

我的查询:

        $(function () {
        if ($("#SupplierID").val() == '0') {
            var productDefaultValue = "<option value='0'>--Select a category first--</option>";
            $("#Company_Registration_Number").html(productDefaultValue).show();
        }

        $("#SupplierID").change(function () {
            var selectedItemValue = $(this).val();
            alert("cert");
            var ddlProducts = $("#Company_Registration_Number");
            $.ajax({
                cache: false,
                type: "GET",
                url: '@Url.Action("GetCompanyRegistrationNumberId", "Order")',
                data: { "id": selectedItemValue },
                success: function (data) {
                    ddlProducts.html('');
                    $.each(data, function (id, option) {
                        ddlProducts.append($('<option></option>').val(option.id).html(option.name));
                    });
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    alert('Found error to load product!!.');
                }
            });
        });
    });

我的剃刀观点:

    <div class="form-group">
        @Html.LabelFor(model => model.Company_Registration_Number, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Company_Registration_Number, new { @id = "Company_Registration_Number" })
            @Html.ValidationMessageFor(model => model.Company_Registration_Number, "", new { @class = "text-danger" })
        </div>
    </div>

提前致谢。

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

解决方案


推荐阅读