2013-10-11 6 views
0

Привет, я работаю в одном проекте mvc, где я застрял на очень маленькой проблеме выбора.выпадающий список выбора в mvc

Существует 2 dropdown.1st используется для названия страны, а второй используется для туризма.

И одна кнопка используется для поиска в соответствии с выпадающим списком.

Вот ссылка на сайт:

www.ourplanettravel.com.au/

Если мы выбираем «Тасмания» с 1-го выпадающего меню и «Туры & Cruises» из 2-го выпадающего списка и нажмите кнопку поиска то второй выпадающий теряет свою ценность (он показывает - Выберите тип туризма -) только в этом случае, а в других вариантах он отлично работает.

Вот код, который я использую:

 <select id='TourismType' name="TourismType"> 
     <option value=''>--Choose Tourism Type--</option> 
     {{if $item.data.oTourismType}} 
     {{each $item.data.oTourismType}} 

    <option value='${Text}'>${Text}</option> 
    {{/each}} 

    </select> 
    {{/if}} 

Просьба предложить мне, где я ошибаюсь.

ответ

0

Похоже, что выпадающее меню сохраняет свое значение в текущем экземпляре представления (следовательно, «Туры & Круизы» являются частью строки запроса после поиска и включены в ваши результаты поиска), но не сохраняют ее значение в раскрывающемся меню. В принципе, модель, которая будет передана в представление, которое будет отображаться при переходе на следующую страницу, не имеет выбранной границы типа туризма. Вы можете восстановить свойство в контроллере.

Однако, в общем, я бы рекомендовал использовать помощники Razor для привязки к вашей модели, а не к явному тегу, что может избежать этой проблемы в первую очередь.

Generic пример с одним выпадающего меню ...

Модель

public class YourModel { 
    public int SelectedTourismType { get; set; } 
    public IEnumerable<TourismType> TourismTypes { get; set; } 
} 

Туризм класс Тип:

public class TourismType { 
    public int TourismTypeID { get; set; } 
    public string DisplayName { get; set; } 
    // other properties if applicable 
} 

Вид:

@model YourModel 

// Your form or whatever here... 

@Html.DropDownListFor(m => m.SelectedTourismType, 
    new SelectList(Model.TourismTypes, "TourismTypeID", "DisplayNameName"), 
    "Select an option") // Default text before the user has selected an option 

Контроллер:

public ActionResult YourAction() 
{ 
    YourModel model = new YourModel(); 
    model.TourismTypes= new List<TourismType> { 
     new TourismType { TourismTypeID = 1, Value = "Tours & Cruises" }, 
     new TourismType { TourismTypeID = 2, Value = "Some other type name" } 
    } 

    return View("YourViewName", model); 
} 

Это должно работать до тех пор, пока вы проходите через ту же модель при обновлении вида на следующей странице. Конечно, вам нужно будет изменить его, чтобы включить и выпадающие списки, причем один из них зависит от другого.

+0

Вы правы, но почему его работа для всех других вариантов того же dropdown.can вы можете проверить эту ссылку .. http://www.ourplanettravel.com.au/ – neha

Смежные вопросы