2016-01-13 5 views
-2

Я провел годы, в основном работая в классическом asp, и, наконец, пытаюсь войти в мир .net. У меня есть несколько элементов, в которых мне нужна помощь.MVC выпадающий список вопросов

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

namespace AMS_MVC.Models 
{ 
    using System; 

    public partial class usp_ListRoles_Result 
    { 
     public byte RoleID { get; set; } 
     public string RoleName { get; set; } 
    } 
} 

здесь является то, что контроллер имеет прямо сейчас (генерируется Visual Studio), используя объект

ViewBag.RoleID = new SelectList(db.Roles, "RoleID", "RoleName"); 

2) Я не хочу, первый элемент в списке, чтобы быть по умолчанию я предпочитаю, чтобы первый элемент говорил «Сделать выбор» и не имел значения. Поэтому административный пользователь не может совершить ошибку и назначить человека на неправильную роль, забыв сделать выбор.

3) Мне нужно добавить событие onChange в раскрывающееся меню. В зависимости от выбранной роли могут отображаться другие параметры. Например, если выбрана роль диспетчера отделов, тогда он должен отображать раскрывающийся список отделов. Если выбрана роль районного менеджера, тогда будет отображаться список районов и т. Д. В одном из вариантов диспетчера отдела отделов он должен отображать оба список отделов, а также список мест.

В классическом asp событие onchange вызывает функцию javascript, которую я написал, которая отображает правильный скрытый div (s).

Пожалуйста, люди, я смотрел много разных примеров в течение недели на этом сайте, а также на других, предоставляемых поисками google и bing, и они не помогают. если все, что вы хотите сделать, это указать на чужой вопрос, который отвечает на что-то подобное, но не совсем то, что я ищу, тогда, пожалуйста, не предоставляйте ссылку, потому что это мне не помогает.

+1

Прочитайте некоторые инструкции по заполнению dropdowlist mvc с помощью HtmlHelper (здесь пример http://stackoverflow.com/questions/20567364/asp-net-mvc-populate-dropdownlist), для пункта 3 вы можете сделать то же самое как «классический asp». – Logar314159

+0

Эта ссылка предоставила мне абсолютно НИКАКОЙ помощи. –

+0

Для элемента 1 зависит от того, как вы подключены к источнику данных. Для элемента 2 проверьте http: // stackoverflow.ком/вопросы/16073464/жерех-сетчатая MVC-как-к-надстройка заполнителя-для-HTML-DropDownList. Для элемента 3 вы можете следовать http://stackoverflow.com/questions/25056508/onchange-event-for-html-dropdownlist или http://stackoverflow.com/questions/8973037/handling-onchange-event-in-html -dropdownlist-razor-mvc –

ответ

1

В MVC существует метод DropDownListFor от HtmlHelper класс. Просто используйте его с вашей моделью собственности (которая должна быть типа List<T>)

@Html.DropDownListFor(m => m.Field, Model.List, new { @id = "id", @class = "css-class" }), где m.Field является свойством в модели где хранить выбранное значение, Model.List список отображаемых элементов. Это также можно создать с помощью «классического asp»

1

Спасибо. который отвечает на третью часть моего вопроса о добавлении события onchange в список.

original code 
@Html.DropDownList("RoleID", null, htmlAttributes: new { @class = "form-control" }) 

new code  
@Html.DropDownList("RoleID", null, htmlAttributes: new { @class = "form-control", @onchange="displayOptions(this.value)"}) 

Для части 2, как добавить еще один вариант в начале списка я проковылял

What dropdown shows in MVC

What I need the drop down to show for first option

также классический осины я не имею в виду asp.net я означало asp 3.0, и это ПОЛНОСТЬЮ отличается от asp.net.

+1

Вы используете параметр «строка опций» в объекте MVC Helper, чтобы указать состояние по умолчанию (невыбранное). Например, '@ Html.DropDownListFor (m => m.Field, Model.List,« Сделать выбор », новый {@id =" id ", @class =" css-class "})' –

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