MVC Html.DropDownList для доступа к текстовому полю - PullRequest
0 голосов
/ 02 февраля 2010

У меня проблема с доступом к текстовому полю с выбранным значением Html.DropdownList.

Моя модель просмотра

public class UserViewModel
{     
    public List<SelectListItem> SupportedCurrency
    {
        get;
        set;
    }


    public string DefaultCurrency
    {
        get;
        set;
    }

}

Мой контроллер заполняет раскрывающийся список, как показано ниже.

public List<SelectListItem> GetSupportedCurrencies(string setupValue)
    {
        List<SelectListItem> items = new List<SelectListItem>();

        try
        {
            IList<Currency> currencyList  = Helper.GetFormattedCurrenciesList(CurrenciesService.GetSupportedCurrencies());

            foreach (Currency c in currencyList)
            {
                if (!string.IsNullOrEmpty(setupValue) && c.CurrencyCode.Equals(setupValue))
                {                        
                    items.Add(new SelectListItem
                    {
                        Text = c.CurrencyDescription,
                        Value = c.CurrencyCode,
                        Selected = true
                    });
                }
                else
                {
                    items.Add(new SelectListItem
                    {
                        Text = c.CurrencyDescription,
                        Value = c.CurrencyCode
                    });
                }
            }
        }
        catch (Exception ex)
        {
           throw ex
        }

        return items;
    }



[AcceptVerbs(HttpVerbs.Get)]
    public ActionResult Index()
    {

     userViewData.SupportedCurrency = GetSupportedCurrencies(userModelData.DefaultCurrency);
            SelectList SupportedCurrencyList = new SelectList(userViewData.SupportedCurrency, "CurrencyCode", "CurrencyDescription");

         .........
      }

Индекс просмотра <% = Html.DropDownList ("userViewModel.DefaultCurrency", Model.SupportedCurrency)%>

......................

Нет, когда я выполняю публикацию / обновление, я вызываю другое действие (скажем, Обновить) и хочу получить доступ к Currencycode, а также к CurrencyDescription. Я могу получить Currencycode, но не могу получить доступ к CurrencyDescription.

Любая помощь с благодарностью.

Ответы [ 2 ]

0 голосов
/ 02 февраля 2010

Я бы предложил сделать это:

public List<SelectListItem> GetSupportedCurrencies()
{
    List<SelectListItem> items = new List<SelectListItem>();

    try
    {
        IList<Currency> currencyList  = Helper.GetFormattedCurrenciesList(CurrenciesService.GetSupportedCurrencies());

        foreach (Currency c in currencyList)
        {
            items.Add(new SelectListItem
            {
                Text = c.CurrencyDescription,
                Value = c.CurrencyCode
            });
        }
    }
    catch (Exception ex)
    {
       throw ex
    }

    return items;
}

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index()
{

 userViewData.SupportedCurrency = GetSupportedCurrencies();
        SelectList SupportedCurrencyList = new SelectList(userViewData.SupportedCurrency, "Value", "Text", userModelData.DefaultCurrency);

     .........
  }
0 голосов
/ 02 февраля 2010

Описание (текст <option> s) не публикуется из формы для выпадающего списка (элемент <select>). То, что вы могли бы сделать, это поддерживать отображение описаний значений на вашем сервере для быстрого поиска. Или вы можете просто использовать описание как для текста, так и для значения SelectListItem объектов.

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