2

Я заполняю выпадающий список в mvc, используя viewbag. Я хочу установить значение по умолчанию для этого раскрывающегося списка, если страница не сохраняется ни с каким другим значением. В противном случае выбранный элемент должен выбрать тот, который они выбирают, и сохранить страницу.Установка значения по умолчанию для Html.DropDownListFor

это, как я заполнить мой viewbag

ViewBag.ListOfCountries = new SelectList(Db.Countries, "CountryCode", "CountryName"); 

это вид сбоку:

<%: Html.DropDownListFor(m => m.OfficeAddressCountry, (IEnumerable<SelectListItem>)ViewBag.ListOfCountries, new{@class="required"}) %> 

ответ

1

Если вы хотите передать значение по умолчанию для списка, чем вы можете сделать, это пройти по умолчанию ViewModel/модель со значением по умолчанию

Пример:

public ActionResult New() 
{ 
    MyViewModel myViewModel = new MyViewModel(); 
    myViewModel.OfficeAddressCountry = default value; 
    //Pass it to the view using the `ActionResult` 
    return ActionResult(myViewModel); 
} 

или вы можете попробовать это

var list = new SelectList(Db.Countries, "CountryCode", "CountryName") 
list.Add(new SelectListItem(){Value = 1,Text = "Deafult Item",Selected = true };) 
ViewBag.ListOfCountries = list; 
+0

myViewModel.OfficeAddressCountry == NULL значение по умолчанию: myViewModel.OfficeAddressCountry;? – Krishna

+0

Должен ли он не использоваться по умолчанию, только если пользователь не выбрал вариант? – Krishna

+0

@krishna .. Это мой вопрос тоже .. –

0

Просто в том, что трещина будет ПОЛЕЗНЫЕ

public class CountryModel{ 

    public List<SelectListItem> CountryList {get; set} 
    public string Country {get; set} 

    public CountryModel(){ 
     CountryList = new List<SelectListItem>(); 
     Country = "USA"; //default values go here 
} 
//your render controller 
public ActionResult Country() 
{ 
    // your database countrylist; 
    CountryModel _countrymodel = new CountryModel(); 


    _countrymodel .CountryList=getcountryfromdatabase(); 
    //default value changes when value user previously selected     
    _countrymodel .Country = "India"; 


    return ActionResult(CountryModel); 
} 
//In your view page 
@model namespace.CountryModel 

@Html.DropDownList("Country", Model.CountryList, Model.Country,new{@class="required"}) 
1

Вы должны использовать различные overlaod из DropDownListFor. Рассмотрим это:

<%: Html.DropDownListFor(m => m.OfficeAddressCountry, 
         ViewBag.ListOfCountries as SelectList, 
         "Default Selected Option", 
         new{@class="required"}) %> 

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

Вы можете проверить this fiddle for default value и this with selected option which is in Model

+0

это полезно, я думаю, но должен быть элемент для записи по умолчанию ... –

+0

в случае по умолчанию мы можем ввести null или -1 в базе данных –

-1
<%: Html.DropDownListFor(m => m.OfficeAddressCountry, 
        ViewBag.ListOfCountries as SelectList, 
        "Default Selected Option", 
        new{@class="required"}) %> 
Смежные вопросы