MVC 5从级联下拉列表获取值

时间:2015-09-25 17:45:22

标签: javascript asp.net-mvc dropdown

我是MVC.NET 5的新手; 我正在开发一个带有下拉列表和表单的应用程序。我的下拉列表是我的模型创建的,我不知道如何从下拉列表中获取值数。 以下是代码的一部分:

第一个下拉部分视图:

@using System.Data.SqlClient
@model Cars.Web.Models.TestModel

@using (Ajax.BeginForm("GetByMake", "Cars", null, new AjaxOptions
{
    HttpMethod = "POST",
    UpdateTargetId = "models",
    InsertionMode = InsertionMode.Replace
}, new { id = "selectMarke" }))
{
    @Html.DropDownListFor(
        m => m.SelectedMarkeId,
        new SelectList(Model.Markes, "Id", "Name"),
        String.Empty
        )
}

<script>
    $('#SelectedMarkeId').change(function () {
        console.log("asd");
        $('#selectMarke').submit();
    });
</script>

这是第二个:

@model  Cars.Web.Models.TestModel

@if (Model.Models != null && Model.Models.Any())
{
      @Html.DropDownList(
            "models",
            new SelectList(Model.Models, "Id", "ModelName"),
            string.Empty
            )
}

我可以从第一个id传递到第二个控制器,但我认为,这不是正确的方法。我想知道我是否添加更多表单,如何将这两个表单绑定在提交上。 感谢

1 个答案:

答案 0 :(得分:0)

使用时:

@Html.DropDownListFor(
        m => m.SelectedMarkeId,
        new SelectList(Model.Markes, "Id", "Name"),
        String.Empty
        )

下拉列表的name将是&#34; SelectedMarkeId&#34;。

使用时:

@Html.DropDownList(
            "models",
            new SelectList(Model.Models, "Id", "ModelName"),
            string.Empty
            )

下拉列表的name将是&#34; models&#34;

控制器必须具有与输入的name匹配的参数。像这样:

[HttpPost]
public ActionResult SomeAction (int models, int SelectedMarkeId)
{
    //SelectedMarkeId is the selected value of the first drop down list
    //models is the selected value of the second drop down list
    //your code here
}

您还可以使用包含与输入名称匹配的属性的对象。像这样:

public class TestModel
{
     public int models { get; set; }
     public int SelectedMarkeId { get; set; }
}

[HttpPost]
public ActionResult SomeAction (TestModel model)
{
    //SelectedMarkeId is the selected value of the first drop down list
    //models is the selected value of the second drop down list
    //your code here
}