Member 1283347 Ответов: 1

Установить viewbag для выбранного значения MVC 5


I am trying to set Selected option to a ViewBag so that when that item is selected specific code is run. It is running only the first item all the item. 


Что я уже пробовал:

Below is my code. Any help will be appreciated.


if (RecurringSeries.Weekly == weekly)
{
   code  goes here
}
else
if (RecurringSeries.Monthly == monthly)
{
   code  goes here
}
 
 
 if (RecurringSeries.Weekly == weekly)
  {
   ViewBag.weekly = weekly;
   }
  else
  {
  ViewBag.monthly = monthly;
  }			
			
<div class="form-group">
  <label>Recurring Series</label>
 <select id="ddRecurring" class="form-control">
  <option value="@ViewBag.weekly">Weekly</option>
 <option value="@ViewBag.monthly">Monthly</option>
</select>
</div>

Bryian Tan

и в чем же проблема?

1 Ответов

Рейтинг:
9

Arkadeep De

Я надеюсь, что это сработает для вас, поскольку вы пытаетесь сохранить выбранное значение в ViewBag.

public class UserVM
{
   public string Year { set; get; }
   public string Month { set; get; }
   public string Day{ set; get; }
}


Установите значение в viewbag и свяжите его

[HttpGet]
public ActionResult Register(User user)
{
     // It should be better to read this data from database
     ViewBag.Year = new SelectList(
                                    new List<SelectListItem>
                                    {
                                        new SelectListItem { Text = "1368", Value = "1987" },
                                        new SelectListItem { Text = "1369", Value = "1988"}, //....
                                    }, "Value" , "Text");
    // Also other properties like Month and Day
     return View();
}


@using (Html.BeginForm())
{
    <div class="form-group">
        @Html.DropDownListFor(m => m.Year, (SelectList)ViewBag.Year, "Select one")
    </div>

    <button type="Submit" class="btn btn-success submit">Send</button>
}


Получите выбранное значение и установите его в другой пакет просмотра.

[HttpPost]
public ActionResult Register(VM model) 
{
    if(!ModelState.IsValid) 
    {
       ViewBag.SelectedYear = model.Year;
    }
    return View();
}


Member 1283347

Я не использую ViewModel, и они не являются SelectListItem. У меня есть выпадающий список html Option selected для пользователей, чтобы выбрать еженедельные или ежемесячные повторяющиеся события. Когда еженедельный элемент выбирается из выпадающего списка, то должен быть выполнен оператор if, выполняющий еженедельные события. Это не метод действия.

Arkadeep De

В чем же тогда ваша проблема??

Member 1283347

Я решил свой вопрос. Я использовал enum RecurringSeries.Еженедельник, который не был должным образом назван. Изменен на столбец таблицы базы данных, и все работает нормально. Спасибо за вашу помощь.

Arkadeep De

(год)