Я пытаюсь заполнить список HTML.Dropdownlist с помощью списка выбора, который заполняется полями строкового значения (адрес местоположения) и текста (описания местоположения) из вызова базы данных. Я передаю selectlist как viewdata к моему представлению. Выпадающее меню заполняется отлично, но когда я использую значение, оно равно нулю или пустое, как видно из предупреждения, которое я ввел в свою функцию javascript. Вот код Любые идеи, почему "this.locations.value" является нулевым:Заполнять выпадающий список с помощью selectlist в ViewData
Мой Посмотреть код:
<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>
My Controller Код:
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();
}
До сих пор не работает. Вынул onsubmit из моего тега формы. Я уже использовал jquery, но добавил ваше предложение к моей готовой функции. Предупреждения выдали «undefined» для адреса fromAddress и пустым для адреса. – MikeD