Ich versuche, eine HTML.Dropdownlist mit einer Auswahlliste zu befüllen, die mit einem Zeichenfolge-Wert (Standortadresse) und Textfeldern (Standortbeschreibung) aus einem Datenbankaufruf gefüllt wird. Ich gebe die Auswahlliste als Sichtdaten an meine Ansicht weiter. Das Drop-down-Popup füllt sich gut, aber wenn ich den Wert verwende, ist es null oder leer, wenn ich eine Warnung sehe, die ich in meine JavaScript-Funktion einfüge. Hier ist der Code Irgendwelche Ideen, warum "this.locations.value" null ist:Popup-Dropdownliste mit Auswahlliste in ViewData
My View Code:
<script type="text/javascript">
var map;
var gdir;
var geocoder = null;
var addressMarker;
function setDirections(fromAddress, toAddress, locale) {
alert(toAddress);
gdir.load("from: " + fromAddress + " to: " + toAddress, { "locale": locale });
}
</script>
<div id="maincontent2">
<form action="#" onsubmit="setDirections(this.from.value, this.locations.value, 'en_US'); return false">
<table>
<tr>
<th align="left">From: </th>
<td align="left" ><input type="text" id="fromAddress" name="from" size="35px" value="King of Prussia, PA"/></td>
<th align="left"> To: </th>
<td align="left"> <%= Html.DropDownList("locations",(SelectList)ViewData["OfficeLocations"])%></td>
</tr>
<tr>
<td></td>
<td align="left">
<br />
<input name="submit" type="submit" value="Get Directions!" />
</td>
</tr>
</table>
<table>
<tr>
<td valign="top"><div id="drv_directions" style="width: 250px"></div></td>
<td valign="top" style="padding-top:15px"><div id ="map_canvas"></div></td>
</tr>
</table>
</form>
</div>
Mein Controller-Code:
public ActionResult Directions()
{
uls_dbDataContext ulsdb_dc = new uls_dbDataContext();
ViewData["OfficeLocations"] = new SelectList(ulsdb_dc.GetOfficeLocations(),"location_address", "location_name");
ViewData["Title"] = "Directions";
return View();
}
immer noch nicht funktioniert. Herausgelöscht habe ich aus meinem Formular-Tag. Ich habe bereits jQuery benutzt, habe aber einen Vorschlag zu meiner fertigen Funktion hinzugefügt. Die Warnungen erzeugten "undefiniert" für die Absenderadresse und leer für die Adresse. – MikeD