Почему DropDownList возвращает неверное значение? - PullRequest
0 голосов
/ 10 июля 2020

Я работаю над приложением, которое написано на ASP. NET MVC с C#.

Я пытаюсь создать представление, в котором DropDownList можно использовать для переместить пользователя на другую страницу.

Но когда я пытаюсь что-то выбрать, он всегда возвращает значение 0.

Контроллер:

[HttpPost]
public ActionResult Index(IndexModel viewModel)
{
    var selectedReportId = viewModel.Id;
    var selectedReportName = viewModel.ReportCode;
    ViewData["input"] = selectedReportId;
    if (selectedReportId == 0 || selectedReportName == "----Select----") {
        ViewData["boucle"] = "boucle 1";
        return View(); 
    }
    if (selectedReportId == 1 || selectedReportName == "Order") {
        ViewData["boucle"] = "boucle 2";
        return View(); 
    }
    if (selectedReportId == 2 || selectedReportName == "Stock") {
        ViewData["boucle"] = "boucle 3";
        return View(); 
    }
    return View();
}

Просмотр:

@model IndexModel
@{
    ViewData["Title"] = "Report choice";
}

<p><h2>Report choice</h2></p>
<div>
    @using (Html.BeginForm("Index", "Home", FormMethod.Post))
    {
        @Html.DropDownListFor(m => m.ReportCode, new SelectList(new WebApplication4.Models.IndexModel().GetReport(), "Id", "ReportCode"))
        <input type="submit" value="Search" />
    }
</div>

Модель:

public class IndexModel
{
    public int Id { get; set; }

    [Required]
    [Display(Name = "Report choice")]
    public string ReportCode { get; set; }

    public IEnumerable<IndexModel> GetReport()
    {
        return new List<IndexModel>
        {
            new IndexModel() {Id = 0, ReportCode = "----Select----"},
            new IndexModel() {Id = 1, ReportCode = "Order"},
            new IndexModel() {Id = 2, ReportCode = "Stock"}
        };
    }
}

Извините за мой английский sh, это не мой родной язык.

1 Ответ

0 голосов
/ 10 июля 2020

Итак, наконец, я просто добавил int selectedId в свою модель и использовал его в качестве первого параметра DropDownList, и это работает! Надеясь, что это будет кому-то полезно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...