нужна помощь в создании раздела комментариев в приложении MVC - PullRequest
0 голосов
/ 23 января 2019

Необходимо добавить раздел комментариев к моему коду для отдельной панели.

Привет всем,

Я создаю в качестве тестового проекта приложение для управления ИТ-билетами и оказания им помощи.У меня есть панель сведений, которая отображает форму сообщения, позволяющую мне просматривать детали и обновлять их при необходимости.Все работает хорошо, за исключением того, что мне нужно создать раздел комментариев, чтобы добавить подробности о работе, которая уже была завершена в области сведений.

@model TicketingSystem.ViewModels.TicketFormViewModel
@{
    ViewBag.Title = "Details";
}

<h2>@Model.Title</h2>

@using (Html.BeginForm("Save", "Tickets"))
{

    <div class="form-group">
        @Html.LabelFor(t => t.Subject)
        @Html.TextBoxFor(t => t.Subject, new { @class = "form-control" })
        @Html.ValidationMessageFor(t => t.Subject)


    </div>

    <div class="form-group">
        @Html.LabelFor(t => t.SenderName)
        @Html.TextBoxFor(t => t.SenderName, new { @class = "form-control" })
        @Html.ValidationMessageFor(t => t.SenderName)
    </div>

    <div class="form-group">
        @Html.LabelFor(t => t.SenderEmail)
        @Html.TextBoxFor(t => t.SenderEmail, new { @class = "form-control" })
        @Html.ValidationMessageFor(t => t.SenderEmail)
    </div>


    <div class="form-group">
        @Html.LabelFor(t => t.Message)
        <br />
        @Html.TextAreaFor(t => t.Message)
    </div>

    <div class="form-group">
        @Html.LabelFor(t => t.StateId)
        @Html.DropDownListFor(t => t.StateId, new SelectList(Model.State, "Id", "Name"), "", new { @class = "form-control" })
        @Html.ValidationMessageFor(t => t.StateId)
    </div>


    @Html.HiddenFor(t=>t.Id , new { @class = "form-control"})

    @Html.AntiForgeryToken()


    <button type="submit" class="btn btn-primary">Save</button>
}

Я надеялся получить небольшую функцию, похожую на окно чата, котораябудет иметь маленькое текстовое поле с кнопкой «пост», под которым я могу представить свои комментарии модели.Я действительно не уверен, как вообще начать реализовывать что-то подобное.Любые указатели будут в основном оценены, так как я довольно плохо знаком с MVC и веб-приложениями в целом.

1 Ответ

0 голосов
/ 23 января 2019

Я бы создал модель комментариев (если вы используете EF), которая бы ассоциировалась с этой моделью TicketView (независимо от того, какой пакет у вашей модели билетов).Затем, по вашему мнению, я бы создал частичный _Comments, который имеет TextArea и кнопку Отправить.На самом деле, я сделал именно это, и это работает.Кнопка отправки в частичном _Comments отправит комментарий и вернется к представлению с комментарием в нем.

Моя модель настроена следующим образом.У меня отношения один ко многим между запросами и ответами.Отзывы есть группы.В каждой группе ответов у меня есть один или несколько GroupComment (s).

Например, в моем родительском представлении (которое имеет ViewModel ответов, групп и комментариев группы) ...

   <section class="comments">
        <label class="commentsLabel">Comments:</label>
        <span> 
           @Html.Partial("_CommentsPartial", comment)               
        </span>                                                          
    </section>

Тогда мои частичные комментарии выглядят следующим образом (для этого отображаются комментарии, если они есть. Если комментариев еще нет, у меня есть кнопка Добавить, чтобы пользователь мог добавить комментарий:

@model IEnumerable<GroupComment>
@{
   var comment = Model;    
   foreach (var c in comment)
   {
       if (c.COMMENT_ID > 0)
       {
      <div>
       <img src="~/Content/note.jpg" /><span 
        class="comment">@Html.ActionLink("Edit", "Edit", "Comments", new { id = 
      c.COMMENT_ID }, null)</span> @c.COMMENTS
     </div>
        } else {
        <div>
            @Html.ActionLink("Add \u00BB", "Create", "Comments", new { NCR_REQUEST_ID = c.NCR_REQUEST_ID, NCR_GROUPS_ID = c.NCR_GROUPS_ID }, new { @class = "btn btn-primary btn-sm" })
        </div>
    }
}       

}

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