MVC 5 从级联下拉列表中获取值
MVC 5 Get Values From Cascade Dropdowns
我是 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 传递到第二个形成控制器,但我认为,这不是正确的方法。我想知道我是否添加更多表单,如何在提交时将它们与这两个下拉列表绑定。
谢谢
当您使用时:
@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
将是 "models"
控制器的参数必须与输入的 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
}
我是 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 传递到第二个形成控制器,但我认为,这不是正确的方法。我想知道我是否添加更多表单,如何在提交时将它们与这两个下拉列表绑定。 谢谢
当您使用时:
@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
将是 "models"
控制器的参数必须与输入的 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
}