我的下拉菜单在页面加载时没有填充正确的状态。它始终从列表的开头开始。现在,我只是通过使用ViewBag传递列表,这可能是问题所在。
正如您在View代码中看到的,我有一个使用我的Model.StateList的下拉列表,但我似乎无法使用它。
addy.State
的格式为StateAbbr(例如" CT"," AL"," AK")
和我的下拉菜单(使用(SelectList) ViewBag.StateList
方法时会生成以下格式的列表:
<option value="AL">Alabama</option>
<option value="AR">Arkansas</option>
模型
public class EditOrderViewModel
{
public List<State> StateList { get; set; }
}
控制器
public ActionResult EditOrder(int orderId)
{
var model = repositoryScheduling.Order_FindById(orderId);
var stateList = GetStateList();
ViewBag.StateList = new SelectList(stateList, "StateAbbr", "StateNamne");
model.StateList = GetStateList();
return View(model);
}
查看
foreach(var addy in Model.Address)
{
<div class="form-group-CityState">
<div class="input-group" style="border-right: 0px">
<span class="input-group-addon CitySpanAddon" style="text-align: left; border-right: 0px">@Html.LabelFor(model => addy.City)</span>
// @*@Html.DropDownListFor(model => addy.State, Model.StateList, new {id = "SelectState", @class = "SelectState"})*@
@Html.DropDownListFor(model => addy.State, (SelectList)ViewBag.StateList, new { id = "SelectState", @class = "SelectState" })
@Html.ValidationMessageFor(model => addy.State)
</div>
</div>
}
不知道这会做什么但是你去了
public List<State> GetStateListAll()
{
const string query = @"SELECT *
FROM
states;";
return this.db.Query<State>(query).ToList();
}
答案 0 :(得分:0)
您需要设置您创建的SelectList对象的SelectedValue值。
public ActionResult EditOrder(int orderId) { var model = repositoryScheduling.Order_FindById(orderId);
var stateList = GetStateList();
var selectStateList = new SelectList(stateList, "StateAbbr", "StateNamne");
selecteStateList.SelectedValue = model.State // your state id... whatever is in your model.
ViewBag.StateList = selectStateList;
return View(model);
}
答案 1 :(得分:0)
这是我的答案。我没有意识到SelectList()
有selectedValue
int i = 0;
foreach (var addy in model.Address)
{
var countyList = GetCountyList(addy.State);
string CountyListCount = "CountyList" + i;
string StateListCount = "StateList" + i;
ViewData[CountyListCount] = new SelectList(countyList, null, "CountyName",addy.County);
ViewData[StateListCount] = new SelectList(stateList, "StateAbbr", "StateName", addy.State);
i++;
}