Я работаю над проектом MVC и имеет раскрывающийся список, чтобы заполнить название страны. Но я хочу заблокировать некоторые названия стран, чтобы они не отражались в этом раскрывающемся списке. Для заблокированных стран значение ключа должно быть указано в файле «web.config». Мне не нужен жесткий код. Мой текущий код указан ниже. Это будет немного перепутано.Чтобы заблокировать некоторые элементы в выпадающем списке Список
Шаг 1
private static void FillCombos(GuestInformationPresenter model)
{
FillCountryLists(model);
}
Шаг 2 // Этот код записывается в GuestInformation контроллере
/// <summary>
/// Function to fill countries in combos.
/// </summary>
/// <param name="model">GuestInformationPresenter type of object</param>
private static void FillCountryLists(GuestInformationPresenter model)
{
//I want to add some Linq code here to Block some countries.
model.FillCountryLists(ReservationService.RetrieveCountries());
}
Шаг 3 // Этот код записывается в GuestInformation Presenter
public void FillCountryLists(Dictionary<string, string> countryList)
{
this.CountryList = countryList;
}
Шаг 4 // Функция для извлечения коллекции стран. /// /// коллекция стран public static KeyValuePair [] RetrieveCountries() { return LookupManager.RetrieveCountries(); }
public static Dictionary<string, string> RetrieveCountries()
{
KeyValuePair<string, string>[] countries =
CruiseLookup.RetrieveCountries();
return countries.ToDictionary<KeyValuePair<string, string>, string, string>(pair => pair.Key, pair => pair.Value);
}
Шаг 5 // Этот код записывается в LookManager.cs
public static KeyValuePair<string, string>[] RetrieveCountries()
{
var countries = from LookupData.CountryRow countryRow in LookupManagerCache.Retrieve().CountryRows
orderby countryRow.Name
select new KeyValuePair<string, string>(
DataField.RetrieveValue(() => countryRow.Code),
DataField.RetrieveValue(() => countryRow.Name));
return countries.ToArray();
}
Метод, который делает return countries.ToArray();
(Шаг 5) является общим для получения списка стран, но когда я хочу этот список bind UserInformation Controller, тогда я хочу заблокировать эти страны.
В настоящее время с шага 4 я получаю пару ключевых цен из разных стран. Например, если страна является Guiena то ключ-значение пары с шага 4 будет значение ключ = «Gu» = «GUIENA»
После этого на шаге 3, я использую этот код, чтобы удалить страны Guiena '
public void FillCountryLists(Dictionary<string, string> countryList)
{
countryList.remove(key="GU");
countryList.remove(key="XYZ"); // Here XYZ is key of any other country
this.CountryList = countryList;
}
Но я хочу добавить LINQ или другой код на шаге 2 (на уровне контроллера), чтобы удалить страны.
Главное, что я хочу, это то, что для заблокированных стран значение ключа должно быть указано в файле «web.config». Можете ли вы помочь мне исправить это?
в чем проблема? вы не можете удалить их на шаге 2? –
вы можете добавить их в web.config и прочитать в контроллере –
@EhsanSajjad это невозможно с помощью некоторых Linq. Главное, что я хочу, это то, что для заблокированных стран значение ключа должно быть указано в файле «web.config». Я новичок в MVC, можете ли вы добавить некоторую помощь по коду? Заранее спасибо. – Web34