开发者

ASP.NET MVC List/Detail View Show Name Values

开发者 https://www.devze.com 2023-02-19 01:15 出处:网络
In my list and details view I need t开发者_开发问答o show the value (name) instead of the id (int).The catch is I only have one collection.So only the the EnteredBy name is showing.The Model.Entries.S

In my list and details view I need t开发者_开发问答o show the value (name) instead of the id (int). The catch is I only have one collection. So only the the EnteredBy name is showing. The Model.Entries.Staff only contains one item not all possible matches.

// model
    public class Entry
    {
        [Display(Name = "Assigned To")]
        [Column(Name = "AssignedToId")]
        [Required(ErrorMessage = "You must select an individual.")]
        public int AssignedToId { get; set; }

        [Display(Name = "Entered By")]
        [Column(Name = "EnteredById")]
        [Required(ErrorMessage = "You must select an individual.")]
        public int EnteredById { get; set; }

        public virtual Staff Staff { get; set; }
    }

// view
    @foreach (var item in Model.Entries)
    {
            <td>
                @(item.AssignedToId == null ? "None" : item.Staff.Name))
            </td>
            <td>
                @(item.EnteredById == null ? "None" : item.Staff.Name)
            </td>
    }


Have you considered using a ViewModel pattern to solve this?

The way I usually do this is I create a ViewModel class that contains both the Model for the page and a property that holds the the list values for my lookup. Here is an example:

In my View I have (Razor):

@Html.DropDownListFor(model => model.ModelObject.leagueId, 
    new SelectList(Model.LeagueList, "leagueId", "leagueName"), 
         "--Select League--", "name='ModelObject.leagueId'")

ModelObject is my actual editable Model...

Then in my ViewModel I have:

public LeagueSeasonRoList LeagueList { get; set; }
public Team ModelObject { get; set; }

In my model, I have a leagueId property which ties it all together.

Then in the controller, instead of using the Editable object directly as my model, I use the ViewModel.

You'll need to make a few adjustments so all your references are correct but I have used this pattern many times with success.

hth,

\ ^ / i l l

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号