Как связать выпадающий список в ASP.NET MVC? - PullRequest
1 голос
/ 26 октября 2009

Как связать выпадающий список в ASP.NET MVC?

Вот мой контроллер:

public ActionResult Create()
    {
        DB db = new DB();

        var t = db.Players.ToList();

        MyPlayRoundHole model = new MyPlayRoundHole();        
        model.MyPlayers = t;

        return View("Create", model);
    } 

и на мой взгляд:

<tr>
                    <td>Player Name:</td>
                    <td><%= Html.DropDownList("SelectedItem", Model.MyPlayers)%></td>
                </tr>

и в моей модели:

namespace Golfsys.Model
{
    public class MyPlayRoundHole
    {
        public IList<Player> MyPlayers { get; set; }
    }
}

1 Ответ

1 голос
/ 26 октября 2009

Вы можете сделать это, используя SelectLists http://msdn.microsoft.com/en-us/library/system.web.mvc.selectlist_members.aspx:

<%=Html.DropDownList("SelectedItem",new SelectList(Model.MyPlayers,"PlayerId","PlayerName",Model.MyPlayers.First().PlayerID)) %>

Конечно, мы должны проверить, если список MyPlayers пуст, прежде чем вызывать First (), чтобы установить начальное выбранное значение.

[Обновление: как обращаться с полным именем]

Вероятно, лучший способ связать два свойства - это создать новое свойство в объекте Player, который будет объединять их (я не думаю, что есть способ установить его непосредственно в SelectList, также лучше так, потому что вы можете использовать повторно FullName где вам нужно):

public string FullName
{
   get { this.FirstName + " " + this.LastName; }
}

Если вы используете какой-либо ORM, который создает эту сущность, вы можете поместить это свойство в частичный класс:

public partial class Player
{
    public string FullName
    {
       get { this.FirstName + " " + this.LastName; }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...