我正在构建我的第一个MVC应用程序,并遵循'NerdDinner'教程。但是,在以同样的方式从SelectList创建下拉列表时,我遇到了一个问题。mvc - dropdownlist没有在编辑视图中正确填充
出于某种原因,当我调出'编辑'视图时,即使数据库中的数据设置为其他数据并且'详细信息'视图显示正确的值,下拉列表也不会显示正确的选择。每个人都只是想出列表中的第一个值。
我已经通过NerdDinner代码一块一块,并且不能为我的生活看到任何区别,但该应用程序将编辑时正确显示与当前值的下拉列表,而我的不是。
任何人都有从这里去哪里的建议?如果有人要求某些特定的东西,我可以发布代码片段。
更新:
在一个字段:
<p>
<label for="Parking">Parking Arrangement:</label>
<%= Html.DropDownList("Parking", Model.Parking)%>
<%= Html.ValidationMessage("Parking", "*") %>
</p>
编辑动作:
//
// GET: /Buyer/Edit/2
public ActionResult Edit(int id)
{
Buyer_Profile buyer_profile = buyerRepository.GetBuyerProfileByID(id);
if (buyer_profile == null)
return View("NotFound");
else if (!buyer_profile.IsOwnedBy(User.Identity.Name, id))
return RedirectToAction("Index", "Home");
else
return View(new BuyerFormViewModel(buyer_profile));
}
以同样的方式,他们构建它的NerdDinner范例例如,我创建了一个“ ... FormViewModel':
public class BuyerFormViewModel
{
// Properties
public Buyer_Profile Buyer_Profile { get; private set; }
public SelectList Parking { get; private set; }
// Constructor
public BuyerFormViewModel(Buyer_Profile buyer_profile)
{
Buyer_Profile = buyer_profile;
Parking = new SelectList(BuyerProfileOptions.Parking, Buyer_Profile.Parking);
}
}
而上时已经被示出的值在详细视图中,并存储在d/B“编辑”,当点击所生成的HTML:
<p>
<label for="Parking">Parking Arrangement:</label>
<select id="Parking" name="Parking"><option>No Preference</option>
<option>On Street</option>
<option>Assigned Street</option>
<option>Open Garage</option>
<option>Covered Garage</option>
</select>
</p>
以相同的形式的文本字段已它们的值正确填充。这只是所有的下拉没有!
非常感谢您的关注。
我已经经历了一步一步的调试程序,当它完成渲染页面时,正确的事情看起来会出来。但是......它只是没有。 – user101306 2009-05-06 04:18:04
您可以发布HtmlHelper和编辑操作的代码片段吗? 也是HTML输出。 – 2009-05-07 07:11:17