我有一个“ViewModel”的工作示例,我认为它适用于下拉列表。目前我正在使用它来做一个 Foreach 并且它可以正常工作,但我需要在我的表单上的下拉列表中获得相同的结果。我尝试了不同的想法,我认为这些想法可能会奏效。似乎没有人能做到这一点。我没有示例,因为我通常只是阅读一堆帖子并开始向其抛出代码以查看哪些内容。我仍在学习,所以希望有人可以为我指明正确的方向,或者向我展示一些可以填充我需要的代码。我相信我的 ViewModel 中有我需要的一切,我想远离 Viewbag。下面是我的“视图模型”。这是我想用来填充下拉列表的行,除非有更好的方法。result.Addresses = db.Addresses.Where(a => a.CompanyId == result.CompanyId);编辑 - 这是此“视图模型”的当前工作下拉列表@Html.DropDownList("AddressId", new SelectList(Model.Addresses, "AddressId", "LocationName"), "Select Address user belongs to", new { @class = "form-control" })这是整个“视图模型” public class RegisterUserViewModel{ public static RegisterUserViewModel GetCompanyId(string userId, CustomerEntities db) { var qCust = from ad in db.Addresses join anu in db.Users on ad.AddressId equals anu.AddressId join cus in db.CompanyNames on ad.CompanyId equals cus.CompanyId where (anu.Id == userId) select new RegisterUserViewModel() { UserId = userId, CompanyId = cus.CompanyId, AddressId = ad.AddressId }; var result = qCust.SingleOrDefault(); if (result != null) { result.Addresses = db.Addresses.Where(a => a.CompanyId == result.CompanyId); }; return result; }}我希望将 AddressId 作为值,将 LocationName 作为文本。
1 回答
慕容森
TA贡献1853条经验 获得超18个赞
尝试如下。
@Html.DropDownList("address", new SelectList(Model.Addresses, "AddressId", "LocationName"))
正如您在评论中提到的那样,您在使用后将第二个项目作为选定值@Html.DropDownList(model => model.AddressId...
,所以这里发生的事情是它会自动从您的model.AddressId
. 只是检查一下。
现在,如果您想设置默认值,请确保您model.AddressId
的值与默认选择值相同。
- 1 回答
- 0 关注
- 95 浏览
添加回答
举报
0/150
提交
取消