Я новичок в MVC.Net и razorviews. У меня есть модель, которая содержит список карт. Я хочу показать этот список в раскрывающемся списке внутри моего представления. Но я не позволю. Из примера, я нашел этот код и сделал попытку:MVC razor view dropboxbox с элементами модели
класса, что список состоит из:
public class CardType
{
public CardType(string cardTypeName)
{
this.CardTypeName = cardTypeName;
}
public string CardTypeName { get; set; }
}
Модель:
public class MyCardsViewModel
{
public IEnumerable<PaymentCard> PaymentCards { get; set; }
public AddPaymentcard PaymentCardInformation { get; set; }
}
public class AddPaymentcard
{
public string CardTypeName { get; set; }
public IEnumerable<SelectListItem> CardTypeList
{
get
{
return _cardTypes.Select(x => new SelectListItem {Value = x.CardTypeName, Text = x.CardTypeName}).ToList();
}
}
public List<CardType> _cardTypes;
}
Контроллер-методы:
// GET: /MyCards/
public ActionResult Index()
{
string userId = User.Identity.GetUserId();
MyCardsViewModel viewModel = new MyCardsViewModel();
var user = _userRepository.GetUser(userId);
viewModel.PaymentCards = user.PaymentCards; //Don't mind this, it is something else :)
var cardTypeList = _cardTypeRepository.GetCardTypes();
viewModel.PaymentCardInformation=new AddPaymentcard
{
_cardTypes = cardTypeList
};
return View(viewModel);
}
//Get: MyCards/AddPaymentcard
public ActionResult AddPaymentcard()
{
return View();
}
Просмотров:
Index-вид, который принимает в MyCardsViewModel и добавляет частичный вид AddPaymentcard.cshtml:
@model Kvittering.TaxiFinans.Web.Models.MyCardsViewModel
(...)
@Html.Partial("~/Views/MyCards/AddPaymentcard.cshtml", @Model.PaymentCardInformation);
AddPaymentcard ракурса:
@model Kvittering.TaxiFinans.Web.Models.AddPaymentcard
(...)
<div class="form-group">
@Html.LabelFor(m => m.CardTypeName, new { @class = "control-label col-md-2"})
<div class="col-md-offset-2 col-md-8">
@Html.DropDownListFor(m => m.CardTypeName, @Model.CardTypeList)
</div>
</div>
Может кто-нибудь помочь мне с этим? :/
Он должен был бы быть 'получить {возвратить новый SelectList (_cardTypes, "CardTypeName", "CardTypeName"); } '- вам нужно указать свойства' Value' и 'Text' –
И вы можете также сделать подпись' public SelectList CardTypeList {..} ', но в любом случае свойство должно быть' public SelectList CardTypeList {get ; задавать; } 'и контроллер должен нести ответственность за установку значения (' List _cardTypes; 'не требуется) –