I have the following class and editor template for creating a dropdownlist for various currencies.
public class Currency
{
public string CurrencyId { get; set; }
public string CurrencyName { get; set; }
}
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<morkyc.Core.Model.Currency>>" %>
<tr>
<td style="width:50%;">
<label class="fieldLabel">
Specify Currency :
</label>
</td>
<td>
<%= Html.DropDownListFor(model => model, new SelectList(Model, "CurrencyId", "CurrencyName", ))%>
</td>
</tr>
I create a list in my controller
List<Currency> lCurrencyList = new List<Currency>(new Currency[]
{
new Currency{CurrencyId = "AED", CurrencyName = "United Arab Emirates Dirham (AED)"},
new Currency{CurrencyId = "AFN", CurrencyName = "Afghan Afghani (AFN)"},
new Currency{CurrencyId = "ALL", CurrencyName = "Albanian Lek (ALL)"},
new Currency{CurrencyId = "AMD", CurrencyName = "Armenian Dram (AMD)"},
new Currency{CurrencyId = "ANG", CurrencyName = "Netherlands Antillean Guilder (ANG)"},
new Currency{CurrencyId = "AOA", CurrencyName = "Angolan Kwanza (AOA)"},
new Currency{CurrencyId = "ARS", CurrencyName = "Argentine Peso (ARS)"},
new Currency{CurrencyId = "AUD", CurrencyName = "Australian Dollar (AUD)"},
new Currency{CurrencyId = "AWG", CurrencyName = "Aruban Florin (AWG)"},
new Currency{CurrencyId = "AZN", CurrencyName = "Azerbaijani Manat (AZN)"},
new Currency{CurrencyId = "BAM", CurrencyName = "Bosnia-Herzegovina Convertible Mark (BAM)"},
new Currency{CurrencyId = "BBD", CurrencyName = "Barbados Dollar (BBD)"},
new Currency{CurrencyId = "BDT", CurrencyName = "Bangladeshi Taka (BDT)"},
new Currency{CurrencyId = "BGN", CurrencyName = "Bulgarian Lev (BGN)"},
new Currency{CurrencyId = "ZWD", CurrencyName = "Zimbabwe Dollar (ZWD)"}
});
In my view i call the following view to create the dropdownlist
<%= Html.EditorFor(model => model.Currency)%>
This is working perfectly fine.
Could anybody please suggest as to how can i set the default selected item ?
Your editor template is strongly typed to a currency list. Also you are passing a list as first argument to the
DropDownListForhelper which is not good. You are never passing some selected value, so the best you could do in this editor template is to set the value to the first element of this list for example.But I guess that you want to dynamically pass this value. So I would modify your view model a little:
then have the following editor template:
and now in your controller:
and finally in the view invoke the custom editor template: