C# 将值从DropdownList检索到控制器中

C# 将值从DropdownList检索到控制器中,c#,.net,forms,asp.net-core,model-view-controller,C#,.net,Forms,Asp.net Core,Model View Controller,我目前正在尝试填充dropdownlist(或asp net select,不管哪一个有效),这样我就可以获取他们选择的任何值,并在控制器中执行一些操作 当涉及到定义这些值时,这个问题就开始发挥作用。这些值可以硬编码,因为它不会从任何东西中提取,它们将保持不变。但是,我还需要通过模型引用这些值,这样我就可以这样做了 public IActionResult Example(ModelName model) { var selectedValue = model.Id // Or model.Na

我目前正在尝试填充dropdownlist(或asp net select,不管哪一个有效),这样我就可以获取他们选择的任何值,并在控制器中执行一些操作

当涉及到定义这些值时,这个问题就开始发挥作用。这些值可以硬编码,因为它不会从任何东西中提取,它们将保持不变。但是,我还需要通过模型引用这些值,这样我就可以这样做了

public IActionResult Example(ModelName model) {
var selectedValue = model.Id // Or model.Name

Do manipulation here...
}

所以底线问题是,我在哪里定义这些值,以及如何将所选值发送回模型,以便在控制器中操纵它们

以下是一个工作演示:

1.型号:

public class TestModel
{
    public int Id { get; set; }
    public string Name { get; set; }
    public Select Select { get; set; }
}
public class Select
{
    public int SelectId { get; set; }
    public string Name { get; set; }
}
2.意见:

@model TestModel
<div class="row">
    <div class="col-md-4">
        <form asp-action="Example">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="Name" class="control-label"></label>
                <input asp-for="Name" class="form-control" />
                <span asp-validation-for="Name" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="Select.Name" class="control-label"></label>
                <select asp-for="Select.SelectId" asp-items="ViewBag.SList"></select>                    
                <span asp-validation-for="Select.Name" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Create" class="btn btn-primary" />
            </div>
        </form>
    </div>
</div>
@model TestModel
3.控制员:

public class HomeController : Controller
{
    public IActionResult Index()
    {
        List<Select> selectList = new List<Select>()
        {
            new Select(){  SelectId=1, Name="aaa"},
            new Select(){  SelectId=2, Name="bbb"},
            new Select(){  SelectId=3, Name="ccc"},
            new Select(){  SelectId=4, Name="ddd"},
        };
        ViewBag.SList = new SelectList(selectList, "SelectId", "Name");
        return View();
    }
    [HttpPost]
    public IActionResult Example(TestModel model)
    {
        var selectedValue = model.Select.SelectId;// Or model.Name
        //do your stuff...
    }
公共类HomeController:控制器
{
公共IActionResult索引()
{
List selectList=新建列表()
{
新建Select(){SelectId=1,Name=“aaa”},
新建Select(){SelectId=2,Name=“bbb”},
新建Select(){SelectId=3,Name=“ccc”},
新建Select(){SelectId=4,Name=“ddd”},
};
ViewBag.SList=新的选择列表(选择列表,“选择ID”,“名称”);
返回视图();
}
[HttpPost]
公共IActionResult示例(TestModel模型)
{
var selectedValue=model.Select.SelectId;//或model.Name
//做你的事。。。
}
结果:


非常感谢!幸运的是,在看到这张照片之前,我让它工作起来了,但它与我的照片完全相同。减去ViewBag,我使用了DropDownList