Получить значение из DropdownList в контроллер - PullRequest
0 голосов
/ 19 февраля 2020

В настоящее время я пытаюсь заполнить выпадающий список (или asp - net select, не имеет значения, какой бы из них ни работал), чтобы я мог получить любое выбранное значение и выполнить некоторые манипуляции в контроллере.

Проблема возникает, когда дело доходит до определения этих значений. Эти значения могут быть жестко запрограммированы, потому что они ни от чего не вытягиваются и останутся прежними. Тем не менее, мне также нужно ссылаться на эти значения через модель, чтобы я мог сделать что-то вроде этого

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

Do manipulation here...
}

Таким образом, главный вопрос в том, где я могу определить эти значения и как я могу отправить выбранные значения вернуться к модели, чтобы я мог управлять ими в контроллере.

1 Ответ

0 голосов
/ 20 февраля 2020

Вот рабочая демонстрация, как показано ниже:

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>

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...
    }

Результат:

enter image description here

...