получение выпадающего текста в методе Post action - PullRequest
1 голос
/ 13 февраля 2012

У меня есть представление Razor в моем приложении asp.net MVC3 с выпадающим списком, подобным этому:

@Html.DropDownListFor(model => model.Account.AccountType, new SelectList(Model.AccountTypes, "AccountTypeCode", "Abbreviation"))

Это раскрывающееся внутри формы.Когда форма публикуется в методе действия и viewmodel заполняется из-за привязки модели, она получает значение (AccountTypeCode), а не свойство «Аббревиатура» в раскрывающемся списке.Я хочу получить оба из них.как я могу получить их в методе после действия.

Пожалуйста, предложите.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2012

Я недавно боролся с этим, и лучшее, что я мог сделать, было:

ViewBag.Message = myModel.myProperty.ToString().

в действии контроллера.Предполагая, что myProperty равно AccountType.

Тогда, на мой взгляд, я просто сделал

@ViewBag.Message

Следующая проблема, с которой я столкнулся, заключается в том, что он выплевывает точный текст без пробелов.Мне пришлось использовать помощник для добавления пробелов (но он основывался на том, что каждое слово пишется с большой буквы, поэтому «ThisIsSomeText» будет отображаться как «This Is Some Text».

0 голосов
/ 13 февраля 2012

Если вам требуется более одного свойства объекта в качестве значения для раскрывающегося списка, самый простой способ - создать их комбинацию в частичном классе. EF 4, как добавить частичные классы этот вопрос должен вам помочь. Вы сможете объединить значения в одном свойстве, которое вы предоставите своему помощнику раскрывающегося списка.

Если вы не хотите использовать частичные классы, я бы посоветовал создать свой собственный помощник, это будет намного проще, чем пытаться использовать то, что не соответствует вашим потребностям. Вы можете сделать что-то вроде:

    @helper CustomDropdown(string name, IEnumerable<AccountTypes> valueList)
        {
        <select>
            @foreach (var item in valueList)
            {
                <option value="@item.Abbreviation @AccountTypeCode">@item.Abbreviation</option>
            }
        </select>
    }

Google "Создание встроенного помощника HTML", чтобы получить некоторые ценные ресурсы по этой теме

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...