-1

我是 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 从控制器传递给第二个,但我认为这不是正确的方法。我想知道我是否添加了更多表单,如何在提交时将它们与这两个下拉列表绑定。谢谢

4

1 回答 1

1

当您使用:

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

下拉列表的name将是“SelectedMarkeId”。

当您使用:

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

下拉列表的name将是“模型”

控制器必须具有与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
}
于 2015-09-25T17:54:06.070 回答