如何在asp.mvc

时间:2019-01-08 10:19:58

标签: javascript c# jquery asp.net-mvc razor

我有一个视图,如果表ID中的comment为null,我想在其中显示文本框和按钮以保存和编辑数据库表。我想显示文本框以输入注释,如果表中存在注释,则显示注释,但是当用户单击第二个(编辑)按钮时,我希望该文本框和按钮应重新出现在该位置,我放置了一个if条件,以检查我的表列是否为空,然后显示文本框和按钮以在该列中输入数据我有第二个按钮可以取回文本框和带有注释文本的按钮。

我的代码在这里

  @if (item.Comments == null)
                    {
                    <div class="form-inline comments">
                        <textarea class="form-control commentText" placeholder="Enter Your Comment"></textarea>&nbsp;
                        <button type="submit" data-cid="@item.RoomId" class="btn btn-primary save"><i class="fas fa-save h3"></i></button>&nbsp;
                        <button type="submit" data-eid="@item.RoomId" class="btn btn-secondary edit"><i class="fas fa-edit h3"></i></button>&nbsp;
                    </div>
                    }
                    else
                    {
                    <div class="commentText">
                        @Html.DisplayFor(modelItem => item.Comments)
                    </div>
                    }

 $('.save').click(function () {
        var cmt = $('.commentText').val();
        $.post("@Url.Action("AddComment", "ReceptionHk")", { id: $(this).data("id"), newComment: cmt });
    });

    $('.edit').click(function () {
        $('.comments').show();
        $('.commentText').hide();
    });

我的控制器方法

public void AddComment(int id, string newComment)
{
    var roomcmt = db.SingleOrDefault<Room>(id);
    if (ModelState.IsValid)
    {
        roomcmt.Comments = newComment;
        var r = db.Update(roomcmt);
    }

}

单击编辑按钮时如何再次显示文本框和两个按钮

请帮助我

1 个答案:

答案 0 :(得分:0)

通过以下方式更改代码:

A :默认删除行@if (item.Comments == null),并使view显示创建部分。

B :要创建/编辑注释,请使用以下代码:

<div class="form-inline comments">
      <textarea class="form-control commentText" placeholder="Enter Your Comment"></textarea>&nbsp;
      <button type="submit" data-cid="@item.RoomId" class="btn btn-primary save"><i class="fas fa-save h3"></i></button>&nbsp;
</div>

C :然后在列表上添加范围验证为:

@if(item.Comments!=null)
{
  <display your list here>
}

要显示comments,而不是静态显示comments,请使用表,并对表中的注释进行foreach循环,以创建其中有2列的行,如{ {1}},Comment。 例如:

Edit

并点击 Edit 按钮,调用一个javascript函数,该函数将调用该注释的检索并填充您的编辑字段,之后您可以稍后使用它进行更新。

您的视图将如下所示:

<table>
     @foreach(var comment in item.Comments)
     {
       <tr>
           <td>@comment.Text</td>
           <td><button data-id="@comment.RoomId">Edit</button></td>
       </tr>
     }
</table>

Rest :实现您的JS函数以检索和创建注释。