Ho un'enumerazione nel mio progetto e ho creato un modello di editor personalizzato per questa enumerazione. Quindi, ora qualsiasi modello che ho con una proprietà con un tipo di questa enumerazione, renderà un menu a discesa.Come posso ottenere il nome della proprietà nel mio modello di editor personalizzato MVC3
Questo funziona benissimo, ma vorrei nominare il mio elemento select del mio menu a discesa con il nome della proprietà. Ecco il mio codice Razor per il mio modello di editor.
@model ItemEnumerations.ItemType
<select id="PropertyNameHere" name="PropertyNameHere">
@foreach (ItemEnumerations.ItemType in Enum.GetValues(typeof(ItemEnumerations.ItemType))) {
<option value="@value" @(Model == @value ? "selected=\"selected\"" : "")>@value.ToString()</option>
}
</select>
Allora, dove ho 'PropertyNameHere' per gli elementi di selezione attributi id e nome, vorrei avere il nome della proprietà del mio modello. Ecco un esempio:
il mio modello:
public class MyModel{
public int ItemID {get;set;}
public string ItemName {get;set;}
public ItemEnumerations.ItemType MyItemType {get;set;}
}
mio Visualizza codice:
@model MyModel
@Html.LabelFor(m => model.ItemID)
@Html.DisplayForm(m => model.ItemID)
@Html.LabelFor(m => model.ItemName)
@Html.EditorFor(m => model.ItemName)
@Html.LabelFor(m => model.MyItemType)
@Html.EditorFor(m => model.MyItemType)
Vorrei che il mio elemento di selezione per avere un nome e l'ID del 'MyItemType'.
Forse una soluzione migliore sarebbe quella di estendere il metodo DropDownFor per gestire il mio conteggio? –
Prova questo ...http://blog.nathan-taylor.net/2012/10/aspnet-mvc-get-field-name-and-id-for.html –