使用单个表MVC填充下拉列表

时间:2018-02-18 19:11:22

标签: javascript c# asp.net-mvc linq combobox

我正在尝试在cascadig中开发一个下拉列表,它向用户建议存储在名为Vanity Furniture的表格中的一件家具的特征(模型,纸张类型和尺寸)。

res_init()

但是当你到达测量的组合框时,这表明在之前的组合中选择的所有类型的纸张的测量值而不是根据模型和根据纸张类型的度量

ScreenShoot

要从第一个组合框填充第二个组合框,我调用GetLamina方法并填写最后一个我调用GetMedidas方法

我的控制器:

 public JsonResult GetLamina(int ModeloMueble)
        {
            db.Configuration.ProxyCreationEnabled = false;
            var modelo = db.MuebleVanitorios.Where(m => m.Kn_CodigoModeloMueble == ModeloMueble);
            return Json(modelo);
        }

        public JsonResult GetMedidas(int LaminaDecorativa)
        {
            db.Configuration.ProxyCreationEnabled = false;
            var lamina = db.MuebleVanitorios.Where(m => m.Kn_CodigoLaminaDecorativa == LaminaDecorativa);
            return Json(lamina);
        }

我的观点:

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

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

    <div class="form-group">
        @Html.LabelFor(model => model.Kn_CodigoMuebleVanitorio, "Medidas Mueble", htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
         @Html.DropDownList("Kn_CodigoMuebleVanitorio", null, ((IList<System.Web.Mvc.ModelMetadata>)ViewData.ModelMetadata.Properties)[0].Watermark, htmlAttributes: new { @class = "form-control", @required = "true" })
            @Html.ValidationMessageFor(model => model.Kn_CodigoMuebleVanitorio, "", new { @class = "text-danger" })
        </div>
    </div>

<script type="text/javascript">
        $(document).ready(function () {
            $("#Kn_CodigoModeloMueble").change(function () {
                $("#Kn_CodigoLaminaDecorativa").empty();
                $("#Kn_CodigoLaminaDecorativa").append('<option value="0">[Seleccione Lamina...]</option>');
                $.ajax({
                    type: 'POST',
                    url: '@Url.Action("GetLamina")',
                    dataType: 'json',
                    data: { ModeloMueble: $("#Kn_CodigoModeloMueble").val() },
                    success: function (data) {
                        $.each(data, function (i, data) {
                            $("#Kn_CodigoLaminaDecorativa").append('<option value="'
                             + data.Kn_CodigoLaminaDecorativa + '">'
                             + data.v_Nombre + '</option>');
                        });
                    },
                    error: function (ex) {
                        alert('Error inesperado.' + ex);
                    }
                });
                return false;
            })
        });
</script>

<script type="text/javascript">
        $(document).ready(function () {
            $("#Kn_CodigoLaminaDecorativa").change(function () {
                $("#Kn_CodigoMuebleVanitorio").empty();
                $("#Kn_CodigoMuebleVanitorio").append('<option value="0">[Seleccione Medidas...]</option>');
                $.ajax({
                    type: 'POST',
                    url: '@Url.Action("GetMedidas")',
                    dataType: 'json',
                    data: { LaminaDecorativa: $("#Kn_CodigoLaminaDecorativa").val() },
                    success: function (data) {
                        $.each(data, function (i, data) {
                            $("#Kn_CodigoMuebleVanitorio").append('<option value="'
                             + data.Kn_CodigoMuebleVanitorio + '">'
                             + data.Medidas + '</option>');
                        });
                    },
                    error: function (ex) {
                        alert('Error inesperado.' + ex);
                    }
                });
                return false;
            })
        });
</script>

然后在我看来,使用Javascript和一点ajax,我改变了下拉状态,我做错了什么?我错过了什么?对我有什么帮助?建议?

0 个答案:

没有答案