/ / @ Html.EditorForModel () Rozbaľovacia ponuka - asp.net, html5, asp.net-mvc-4, britva

@ Html.EditorForModel () Rozbaliť - asp.net, html5, asp.net-mvc-4, holiaci strojček

Pracujem na tom MVC4 , using @Html.EditorForModel() , ukazuje sa dropdownlist ako textové pole, chcem sa zobraziť Dropdown zoznam nastavením ľubovoľného attribute a hlavná šablóna. Prosím, podeľte sa o mňa MVC4 príklad tohto.

@model Models.Employee

@{
ViewBag.Title = "Create";
}

<h2>Create</h2>

@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)

<fieldset>
<legend>Employee</legend>
@Html.EditorForModel()
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}

<div>
@Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

Vopred ďakujem.

odpovede:

4 pre odpoveď č. 1

Môžete definovať model zobrazenia, ktorý bude predstavovať rozbaľovaciu ponuku:

public class ItemsViewModel
{
public string SelectedValue { get; set; }

public IEnumerable<SelectListItem> Values { get; set; }
}

ktoré sa použijú vo vašom hlavnom modeli zobrazenia:

public class MyViewModel
{
public ItemsViewModel DropDown1 { get; set; }
public ItemsViewModel DropDown2 { get; set; }
...
}

Teraz už zostáva napísať šablónu vlastného editora pre ItemsViewModel ktoré by mali byť umiestnené ~/Views/Shared/EditorTemplates/ItemsViewModel.cshtml, Všimnite si, že názov a umiestnenie šablóny je dôležité:

@model ItemViewModel
@Html.DropDownListFor(x => x.SelectedValue, Model.Values)

a to je skoro všetko, čo potrebujete.


-1 pre odpoveď č. 2

Je to nevyhnutná šablóna? Môžete použiť @Html.DropDownList() pomocník.

Existuje úplný príklad o tom, ako používať webovú stránku asp.net a môžete si stiahnuť projekt: Tu