Динамически присваивать значение свойству - PullRequest
0 голосов
/ 02 февраля 2019

Мне трудно понять, как динамически присваивать значение свойству, то есть во время выполнения, чтобы я мог получить / отобразить значение на странице бритвы.У меня есть следующая логика программирования для выполнения моей задачи, однако это свойство (LmitedWords) не отображает и не содержит никаких значений для отображения.Как мне присвоить значение этому свойству во время выполнения.

public class Post 
{

   public string Content { get; set; }
   [NotMapped]
   public string LimitedWords { get; set; } 

 }

Мой код контроллера следующий: -

 public async Task<IActionResult> GetAllPosts()
        {
            var myLimitProperty = new Post();
            var result = await _repository.GetAllPosts();

            foreach (var post in result)
            {
                var limitContent = ContentExtension.ReturnLimitedDescription(post.Content, size);               
                myLimitProperty.LimitedWords = limitContent; 

            }
            return View(result);
        }    

мой вспомогательный метод contentextension возвращает значение, как ожидалось, и во время отладки он делаетпокажите, что локальная переменная "limitContent" имеет значение, но почему-то не присваивает его свойству LimitedWords, которое является свойством в классе Post.

В моем классе Post есть и другие свойства, и я хочу, чтобы они отображались по мере их сохранения в базе данных.

Моя страница Razor не отображает содержимое, поскольку оно является нулевым:

<div>
 <markdown markdown="@Model.LimitedWords">                    
</div>

Спасибо!

1 Ответ

0 голосов
/ 02 февраля 2019

Хорошо, исходя из того, что вы опубликовали, result содержит сообщения, возвращаемые хранилищем.

Вы просматриваете эти сообщения, обновляете локальную переменную myLimitProperty в действии и возвращаете исходную коллекцию.

На самом деле ничего не обновляется для объектов, отправляемых в представление

Создайте проекцию из списка, заполнив нужные свойства, которые должны отображаться в представлении.

public async Task<IActionResult> GetAllPosts() {
    var posts = await _repository.GetAllPosts();

    var result = posts.Select(post => {
        var limitContent = ContentExtension.ReturnLimitedDescription(post.Content, size);
        var model = new Post() {
            Content = post.Content;
            LimitedWords = limitContent; 
        };
        return model;
    }).ToList();

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