/ / valeur sélectionnée dans la liste déroulante de la base de données - html, asp.net-mvc

valeur sélectionnée dans la liste déroulante de la base de données - html, asp.net-mvc

Je veux montrer les valeurs stockées dans la liste déroulante comme une valeur sélectionnée. Je ne sais pas comment faire cela dans MVC.

Mon code est

<%: Html.DropDownList("basic-qualification-container" + i.ToString(),
new SelectList((IEnumerable<Dial4Jobz.Models.Degree>)ViewData["CandidateBasicQualifications"], "Id", "Name", (IEnumerable<int>)ViewData["BasicQualificationDegrees"]),
new { @class = "qualification" })%>

Je sélectionne une option du menu déroulant et le soumets. Après avoir chargé la page, la dernière valeur stockée s’affiche. C'est mon problème.

Réponses:

0 pour la réponse № 1

DropDownList Helper dans la vue SomeAction

Html.DropDownList(
string name,
IEnumerable<SelectListItem> selectList,
ViewData["lastSelected"],  // String Selected Option
object htmlAttributes)

Vous pouvez afficher la valeur sélectionnée avec viewData comme ci-dessous.

Manette

// Set Default selected
public ActionResult SomeAction()
{
ViewData["lastSelected"] = "Default Text";
return View();
}

Et après la publication, vous devez redéfinir viewData qui apparaît dans la valeur sélectionnée.

// Set selected value after posting
[HttpPost]
public ActionResult SomeAction()
{
.....
ViewData["lastSelected"] = "Changed Text (selected value)";
return View();
}

1 pour la réponse № 2

Vous envoyez probablement une valeur incorrecte pour le paramètre selectedValue. Vous devez définir la valeur dans le constructeur SelectList.

<%: Html.DropDownList("basic-qualification-container" + i.ToString(),
new SelectList((IEnumerable<Dial4Jobz.Models.Degree>)ViewData["CandidateBasicQualifications"],
"Id",
"Name",
ViewData["selectedValue"]), //set selected value here
new { @class = "qualification" })%>

Une meilleure façon de faire consiste à mettre toutes les données de ViewData dans un modèle et à les taper fortement dans votre vue.

Voici comment vous définiriez votre modèle:

public class SampleModel
{
private string SelectedOption { get; set; }
private IEnumerable<SelectListItem> Options { get; set; }
}

Indiquez ensuite les valeurs dans votre méthode d'action:

public ActionResult Index()
{
//get data from db
SampleModel model = new SampleModel
{
SelectedOption = selectedOption,
Options = new SelectList(options, "Id", "Name")
};
return View(model);
}

Après avoir fortement saisi l'écran SampleModel, vous pouvez utiliser l'assistant Html.DropDownListFor dans votre vue.

<%: Html.DropDownListFor(model => model.SelectedOption,
Model.Options,
new { @class = "qualification" }) %>