查看模型结果的下拉列表

我有一个“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 作为文本。


智慧大石
浏览 96回答 1
1回答

慕容森

尝试如下。@Html.DropDownList("address", new SelectList(Model.Addresses, "AddressId", "LocationName"))正如您在评论中提到的那样,您在使用后将第二个项目作为选定值@Html.DropDownList(model => model.AddressId...,所以这里发生的事情是它会自动从您的model.AddressId. 只是检查一下。现在,如果您想设置默认值,请确保您model.AddressId的值与默认选择值相同。
打开App,查看更多内容
随时随地看视频慕课网APP