2016-04-20 2 views
0

Ниже мой DropDownList в видуКак показать выбранное значение DropDownList из MVC

<div class="col-xs-8 col-sm-8 col-md-4">       
@Html.DropDownList("Status",new List<SelectListItem> { new SelectListItem{ Text="Active", Value = "Active" },new SelectListItem{ Text="InActive", Value = "InActive" }}, new { @class = "form-control" }) 
</div> 

От значения DB приходит либо как «Active» или «Inactive» и в раскрывающемся списке уже эти два значения. И из моей базы данных я присваиваю значение в ViewBag.IsStatus. Теперь предположим, что мое значение приходит «InAactive» из БД, а затем как назначить это как выбранное значение в раскрывающемся списке, а не отображать первое выпадающее меню по умолчанию в качестве выбранного.

+0

Значения ваших параметров: '0' и' 1' (не '' Active ''и' 'неактивные' '), поэтому, если значение свойства' Status' равно '1', то второе будет выбран вариант. –

+1

Отметьте этот ответ http://stackoverflow.com/a/6807331/3074022 – Sousuke

+0

@StephenMuecke ok Я изменил свое значение так же, как и текст. но до сих пор не получил желаемого результата. – Steve

ответ

1

Лучше использовать DropDownListFor, если вы используете MVC. Но для вашего дела просто создайте SelectList и передайте его DropDownList. SelectList застройщика имеет перегрузки для выбранного значения:

@{ //theese lines actually should be in controller. 
var list = new List<SelectListItem> 
      { 
      new SelectListItem 
        { 
         Text="Active", 
         Value = "0" 
        } 
      ,new SelectListItem 
        { 
         Text="InActive", 
         Value = "1" 
        } 
      } 
} 

//thats your code 
<div class="col-xs-8 col-sm-8 col-md-4">       
    @Html.DropDownList("Status",new SelectList(list, "Value", "Text", ViewBag.IsStatus), new { @class = "form-control" }) 
</div> 
+0

Я переместил 'var list =' в мой контроллер, а затем как я получу доступ к этому списку в моем представлении внутри 'SelectList' – Steve

+0

@Steve, но вы создадите этот список с помощью кода выше? –

+0

@Steve в вашем контроллере вы должны использовать 'ViewData.Model', чтобы сохранить это. Затем используйте модель, чтобы получить это значение. ** Или ** вы можете просто использовать «ViewBag.list», а затем получить доступ к этим данным с помощью «ViewBag.list» в представлении –

1

Если у вас есть модель со свойством Status затем просто присвоить это значение свойства (например, в контроллере):

Модели

public class Model 
{ 

    public string Status {get;set;} 
} 

контроллер

public ActionResult SomeAction() 
{ 
    //the value has to correspond to the Value property of SelectListItems 
    //that you use when you create dropdown 
    //so if you have new SelectListItem{ Text="Active", Value = "Active" } 
    //then the value of Status property should be 'Active' and not a 0 
    var model = new Model{Status = "Active"} 

    return this.View(model); 
} 

Вид:

@model Model 


@Html.DropDownListFor(m=>m.Status,new List<SelectListItem> { new SelectListItem{ Text="Active", Value = "Active" },new SelectListItem{ Text="InActive", Value = "InActive" }}, new { @class = "form-control" }) 
+0

' @ Html.DropDownListFor (m => m.FirstOrDefault(). IsDelete, новый List {new SelectListItem { Text = "Active", Value = "false"}, новый SelectListItem {Text = "InActive", Value = "true"}}, новый {@class = "form-control"}) ' – Steve

+0

isDelete - это мое свойство bool, но Я не могу получить такую ​​же, как вы сказали, для выбранного значения – Steve

+0

Что такое 'm => m.FirstOrDefault(). IsDelete' ??? –