2015-08-09 7 views
2

Я знаю, что это вопрос, который многие люди отреагировали на сайт, но никакое решение, похоже, не работает для моей проблемы. Я новичок в MVC и не знаю, как отправить выбранный элемент в выпадающем списке на контроллер.Как получить выбранный элемент из списка DropDownList?

public class MonthDropDownList 
    { 
     public IEnumerable<SelectListItem> Months 
     { 
      get 
      { 
       return DateTimeFormatInfo 
         .InvariantInfo 
         .MonthNames 
         .Where(m => !String.IsNullOrEmpty(m)) 
         .Select((monthName, index) => new SelectListItem 
         { 
          Value = (index + 1).ToString(), 
          Text = monthName 
         }); 
      } 
     } 

     public int SelectedMonth { get; set; } 

    } 

Вот мое мнение:

@model Plotting.Models.MonthDropDownList 

@Html.DropDownListFor(x => x.SelectedMonth, Model.Months) 

@using (Html.BeginForm("MonthlyReports", "Greenhouse", FormMethod.Post)) 
{ 
<input type="submit" name="btnSubmit" value="Monthly Report" /> 
} 

А вот ActionResult, в котором я должен использовать выбранную дату:

public ActionResult MonthlyReports(MonthDropDownList Month) 
     { 

      Debug.Write("Month" + Month.SelectedMonth);// <- always = 0 
      InitChartModel(); 
      cDate.DateTitle = "Day"; 
      string msg = dal.Connection("month"); 
      List<Greenhouse> greenhouse = dal.FindIfDMY("month" , Month.SelectedMonth , msg); 
      cDate.DateData = GetChart(greenhouse, "month"); 

      return View("MonthlyReports", cDate); 

     } 

ответ

3

Необходимо перемещать ваш DropDownList в вашу форму.

@model Plotting.Models.MonthDropDownList 

@using (Html.BeginForm("MonthlyReports", "Greenhouse", FormMethod.Post)) 
{ 
    @Html.DropDownListFor(x => x.SelectedMonth, Model.Months) 
    <input type="submit" name="btnSubmit" value="Monthly Report" /> 
} 
+0

Спасибо! Это была проблема, и теперь я понимаю, почему. – Maria

1

Ваши потребности управления формой, чтобы быть внутри формы тегов

@using (Html.BeginForm("MonthlyReports", "Greenhouse", FormMethod.Post)) 
{ 
    @Html.DropDownListFor(x => x.SelectedMonth, Model.Months) // move here 
    <input type="submit" name="btnSubmit" value="Monthly Report" /> 
}