Свойство устанавливается во ViewModel через Controller, но при отображении его в представлении оно пустое? - PullRequest
1 голос
/ 10 августа 2011

У меня есть следующая ViewModel

    public class ShowQuestionsViewModel
{
    public String CategoryName { get; set; }
    public String CategoryNumber { get; set; }

    public List<QuestionViewModel> QuestionsInCategory { get; set; }

    public ShowQuestionsViewModel()
    {
        QuestionsInCategory = new List<QuestionViewModel>();
    }
}

В моем контроллере я установил свойства следующим образом (фрагмент):

ShowQuestionsViewModel sqvmsub = new ShowQuestionsViewModel();

var questionsSub = db.Question.Where(y => y.category_id == sub.category_id).ToList();

if (questionsSub != null)
{
   sqvmsub.CategoryName = sub.category_name;
   sqvm.CategoryNumber = sub.prefix;
   .....
}

Когда я пытаюсь отобразить свойства в моем представлении, свойство CategoryNumber остается пустым, даже если оно установлено в контроллере (я проверил отладкой) ..:

@foreach (var item in Model)
{
    if (item.QuestionsInCategory.Count != 0)
    {
    <h3>@Html.LabelFor(y => item.CategoryName, item.CategoryName)</h3>
    <h3>@Html.LabelFor(y => item.CategoryNumber, item.CategoryNumber)</h3>

@Html.LabelFor (y => item.CategoryNumber, item.CategoryNumber)

Отображается только текст «CategoryNumber»

Если я попытаюсь изменить свой контроллер следующим образом:

sqvmsub.CategoryName = sub.prefix;

Он отображает то, что он должен, что означает, что нет ничего плохого в sub.prefix, но с CategoryNumber в ShowQuestionsViewModel ..

Кто-нибудь имеет представление о том, что не так?

1 Ответ

0 голосов
/ 10 августа 2011

Я явно не правильно настраивал свойства. Я изменил это на:

ShowQuestionsViewModel sqvm = null;

var questionsMain = db.Question.Where(y => y.category_id == s.category_id).ToList();

if (questionsMain != null)
   {
      sqvm = new ShowQuestionsViewModel() { CategoryNumber = s.prefix, 
                                            CategoryName = s.category_name };
.....
}

Теперь это работает. Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...