Как установить выпадающий список, как требуется в MVC3 - PullRequest
1 голос
/ 29 марта 2012

Впервые в MVC, так что, надеюсь, это будет довольно просто.У меня есть раскрывающийся список HTML-кода, который я хотел бы установить по мере необходимости в контактной форме, однако, когда я применяю аннотации данных, выполняется класс, который, как мне кажется, не может заставить его сработать так, как это требуется в посте.Значение по умолчанию: ""

. Вот мой HTML-фрагмент:

<div class="editor-field">
    <select name="ContactReason" size="1" class="textBox">
        <option value=""></option>
        <option value="I have a question about this website">I have a question about this website</option>
        <option value="My account is locked">My account is locked</option>
        <option value="I am experiencing problems with the website">I am experiencing problems with the website</option>
    </select>
    @Html.ValidationMessageFor(m => m.ContactReason)
</div>

. Ниже приведен мой код C # с моими аннотациями.Я пытался установить обязательный атрибут и даже атрибут диапазона, но ни один из них не помог.

[Required(ErrorMessage = "Your reason for contacting is required.")]
[Range(2, 100,
ErrorMessage = "Your reason for contacting is required.")]
public virtual string ContactReason { get; set; }

Спасибо за ваше руководство.

Блоха

Ответы [ 2 ]

1 голос
/ 29 марта 2012

Используйте свойство optionLabel в @ Html.DropDownListFor ()

Сделать это "Выбрать один" или "" (Пустая строка)

Подтвердите в вашем контроллере пометку "Выберите один" или "" (пустая строка)

Сделайте то же самое в JQuery

0 голосов
/ 30 марта 2012

Мне показался полезным следующий сайт: http://codeoverload.wordpress.com/2011/05/22/dropdown-lists-in-mvc-3/

Я реализовал следующее, и у меня это сработало:

Модель:

public List<SelectListItem> ContactReasons { get; set; }

[Required(ErrorMessage = "Your reason for contacting is required.")]
public virtual string ContactReason { get; set; }

Контроллер:

public ActionResult Index()
{
    var Model = new ContactForm();
    Model.ContactReasons = this.GetContactReasons();
    return View(Model);
}

private List<SelectListItem> GetContactReasons()
{
    List<SelectListItem> items = new List<SelectListItem>();
    items.Add(new SelectListItem { Text = "", Value = "" });
    items.Add(new SelectListItem { Text = "I have a question about this website", Value = "I have a question about this website" });
    items.Add(new SelectListItem { Text = "I am experiencing problems with the website", Value = "I am experiencing problems with the website" });

    return items;
}

Вид:

<div class="editor-label">
    @Html.Label("I am contacting because:")
</div><br />
<div class="editor-field">
   @Html.DropDownListFor(m => m.ContactReason, Model.ContactReasons)
   @Html.ValidationMessageFor(m => m.ContactReason)
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...