Ich versuche, eine Teilansicht zu erstellen Drop-Down auf jeder Ansicht erstellen. Habe ein View-Modell und eine Teilansicht für dasselbe erstellt. Die Erstellung erfolgt ordnungsgemäß, zeigt aber keinen ausgewählten Wert an.@ Html.DropDownList zeigt keinen ausgewählten Wert
Nachfolgend finden Ansicht Modell Klasse
public class drowDownVM
{
public string id { get; set; }
public string name { get; set; }
public string cssClass { get; set; }
public string keyColumnName { get; set; }
public string valueColumnName { get; set; }
public string selectedValue { get; set; }
public string viewbagName { get; set; }
public bool isMultipleSelect { get; set; }
public List<int> multipleselectedValue { get; set; }
}
Below Teilansicht ist unten
@if (Model != null)
{
if (ViewData != null && ViewData.Count > 0 && ViewData.Keys.Contains(Model.viewbagName))
{
string ddName = !(string.IsNullOrEmpty(Model.name)) ? Model.name : "default-name";
string viewBagName = !(string.IsNullOrEmpty(Model.viewbagName)) ? Model.viewbagName : ViewData.Keys.First();
string keyColumnName = !(string.IsNullOrEmpty(Model.keyColumnName)) ? Model.keyColumnName : "id";
string valueColumnName = !(string.IsNullOrEmpty(Model.valueColumnName)) ? Model.valueColumnName : "id";
string selectedVal = !(string.IsNullOrEmpty(Model.selectedValue)) ? Model.selectedValue : "";
List<int> multipleSelectVal = (Model.multipleselectedValue != null && Model.multipleselectedValue.Count > 0) ? Model.multipleselectedValue : new List<int>();
var cssClass = !(string.IsNullOrEmpty(Model.cssClass)) ? Model.cssClass : "";
if (!Model.isMultipleSelect)
{
<div>
@Html.DropDownList(ddName, new SelectList((System.Collections.IEnumerable)ViewData[viewBagName], keyColumnName, valueColumnName, 2), "--Select--", new { @class = cssClass, @data_Val = selectedVal })
</div>
}
else
{
@Html.ListBox(ddName, new MultiSelectList((System.Collections.IEnumerable)ViewData[viewBagName], keyColumnName, valueColumnName, multipleSelectVal), new { @class = cssClass, @multiple = "multiple"})
}
}
}
else
{
<p class="hidden">Model Data Not Found!</p>
}
Below zu binden Drop ist der Code, der Teilansicht ruft nach unten zu binden fallen, erste ist Single wählen, der zweite ruft mehrere select auf.
@Html.Partial("_dropdown", new drowDownVM() { cssClass = "form-control", id = "TargetTypeList", keyColumnName = "code_val", name = "TargetTypeList", selectedValue = "1", valueColumnName = "code_name", viewbagName = "TargetTypeList"})
@Html.Partial("_dropdown", new drowDownVM() { cssClass = "form-control", id = "TargetTypeList", isMultipleSelect = true, keyColumnName = "code_val", name = "TargetTypeList", selectedValue = "1", valueColumnName = "code_name", viewbagName = "TargetTypeList", multipleselectedValue = new List<int>() { 1, 2 } })
Hinweis: Wenn Sie keine Notwendigkeit, nur dann zu gehen, um eine resusable Drop-Down-Komponente erstellen möchten für Teilansichten Sie EditorTemplate in MVC –
Dropdown-Liste zeigt, nicht ausgewählten Wert versuchen. was es bedeutet ? Sie erhalten den ausgewählten Wert nicht im Controller? oder wenn ein Benutzer versucht, einen Dropdown-Wert in ui zu wählen, zu dieser Zeit ist es überhaupt nicht ausgewählt ?? Bitte erzähle uns das wahre Problem. Die Frage ist wenig verwirrend –
Angenommen, diese Teilansicht wird im Bearbeitungsmodus verwendet und soll den standardmäßig ausgewählten Wert anzeigen. Zu diesem Zeitpunkt wird der ausgewählte Wert nicht angezeigt. – DaxeshVora