Ich habe einige Schwierigkeiten, den Wert eines SelectListItem \ DropDwown ausgewählten Werts aus einem ASP.Net MVC-Formular abzurufen.SelectListItem DropDownFor kann nicht ausgewählt werden Wert
Ich habe Vergangenheit Antworten geprüft und haben durch diese und haben keinen Erfolg
- Get selected item in DropDownList ASP.NET MVC
- Asp.Net MVC with Drop Down List, and SelectListItem Assistance
Ich habe auch einige andere Antworten zu, dass ich nach rechts zurück kippe geprüft sah jetzt
Mein Code in der Steuerung ist
public ActionResult QuickSearch()
{
var ddlValues = new List<DropDownValues>
{
new DropDownValues { Text= "5", Value = 5},
new DropDownValues { Text= "10", Value = 5}
};
var model = new QuickSearchViewModel();
model.Distance = ddlValues.Select(x => new SelectListItem {Text = x.Text, Value = x.Value.ToString() });
//var model = new QuickSearchViewModel()
//{
// Distance = from value in ddlValues
// select new SelectListItem
// {
// Text = value.Text,
// Value = value.Value.ToString()
// }
//};
return PartialView(model);
}
[HttpPost]
public ActionResult QuickSearch(QuickSearchViewModel model)
{
if (ModelState.IsValid)
{
return RedirectToAction("QuickSearch", "Search", model);
}
return PartialView(model);
}
Der Code zum Auffüllen der Auswahlliste funktioniert einwandfrei, und die Schaltfläche, die das HttpPost-Ereignis auslöst, funktioniert auch wie erwartet.
Aber für das Leben von mir kann ich den ausgewählten Wert nicht herausbekommen, es sei denn, ich benutze Ajax, was ich jetzt nicht tun möchte, es sei denn, ich möchte dies vom Home Controller zum Search Controller umleiten.
Dies ist der Razor \ HTML-Code der Teilansicht
@model SP.DABB.WebUI.Models.QuickSearchViewModel
@using(Html.BeginForm("QuickSearch", "Home", FormMethod.Post))
{
<div class="form-group">
<div class="col-md-6 col-lg-6">
@Html.LabelFor(x => x.PostCode)
</div>
<div class="col-md-6 col-lg-6">
@Html.TextBoxFor(x => x.PostCode, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-lg-6">
@Html.LabelFor(m => m.Distance, new { @class = "control-label" })
</div>
<div class="col-md-6 col-lg-6">
@Html.DropDownListFor(m => m.Distance, new SelectList(Model.Distance, "Value", "Text"), new { @class = "form-control" })
@*@Html.DropDownListFor(m => m.Distance, Model.Distance, new { @class = "form-control" })*@
</div>
</div>
<br /><br />
<div class="form-group">
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 pull-right">
@*<input type="button" id="bttnQuickSearch" class="btn btn-info pull-right" value="Perform Quick Search"/>*@
<button type="submit" id="bttnQuickSearch" class="btn btn-info pull-right">Search</button>
</div>
</div>
}
- Bearbeiten - Ansicht Modell hinzugefügt
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace SP.DABB.WebUI.Models
{
public class QuickSearchViewModel
{
[Display(Name = "Your Postcode")]
[StringLength(maximumLength:8, MinimumLength = 5, ErrorMessage = "Please provide your full postcode.")]
public string PostCode { get; set; }
[Display(Name = "Distance")]
public IEnumerable<SelectListItem> Distance { get; set; }
public int SelectedDistance { get; set; }
public QuickSearchViewModel()
{
Distance = new List<SelectListItem>();
}
}
}
Jedwedes Hilfe sehr geschätzt wird.
ich die Frage bearbeitet haben das Ansichtsmodell jetzt –
zu zeigen, wenn ich im selben Raum war ich würde dich küssen !! die eine Sache, die ich nicht versuchte, nicht einmal in Betracht gezogen .. danke für Ihre Hilfe –