как утвердить или отклонить запись на стороне пользователя на одобрение администратора в asp.net mvc 5 - PullRequest
0 голосов
/ 27 октября 2018

Я начинающий с asp.net и MVC.Я хочу утвердить или отклонить запись со стороны администратора, если кнопка одобрения нажата со стороны администратора, только эта запись будет показана на стороне пользователя, в противном случае - нет. Я взял столбец IsShow db как бит тип данных в базе данных и на основании этого я хочу одобрить или отклонить запись. Может ли кто-нибудь помочь мне с этим, пожалуйста, я попробовал следующее, если я сделаю это с Jquery или простой код C # будет делать.Я искал это, но не смог получить удовлетворительный ответ

 My Model

 public partial class UserComments
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string PhoneNumber { get; set; }
    public string Email { get; set; }
    public string Comment { get; set; }
    public string Path { get; set; }
    public Nullable<bool> IsShow { get; set; }
}

Мой метод контроллера на стороне администратора, из которого делается представление администратора для утверждения и отклонения

    public ActionResult Index()
    {
        return View(db.UserComments.ToList().OrderByDescending(c => c.Id));
    }

Мой метод контроллера от пользователясторона, с которой отображается представление пользователей

    public ActionResult Gandhiji(int? id)
    {

        ViewBag.user = db.UserComments.Where(c => c.Id == 1).OrderBy(c => c.Id).ToList();

        return View("Gandhiji");
    }

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

        @{
            var Users = (IEnumerable<UserComments>)ViewBag.user;
        }

        @foreach (var item in Users)
        {
            <div class="col-sm-6 col-xs-12">
                <div class="panel panel-default text-center">

                    @*<div class="panel-body EApic" style="background: url(/Pictures/@p.ImagPath) no-repeat; background-size:cover;">*@
                    <div class="panel-body EApic" id="imagediv" style="background: url(/Pictures/@item.Path) no-repeat; background-size:cover;">
                        <div class="EAtext">
                                @Html.Raw(item.Name)
                                <br />
                                @Html.Raw(item.Comment)
                        </div>
                    </div>


                    @*closing divs of row*@
                </div>

            </div>
        }
    </div>

вид со стороны администратора

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Name)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.PhoneNumber)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Email)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Comment)
            </td>
            <td>
                <img src="@item.Path" />
            </td>
            <td>
                <a href="#" id="show" data-id="@item.Id" class="btn btn-info">Show</a> |
                <a href="#" id="hide" data-id="@item.Id" class="btn btn-primary">Hide</a>
            </td>
        </tr>
    }

</table>

<script>
    $(function () {
        ("#show").click(function () {
            $('#imagediv').html("");
            $('#imagediv').load('@Url.Action("Gandhiji", "Home")');
        }
    });
</script>

1 Ответ

0 голосов
/ 27 октября 2018

Утверждение записей означает любой столбец, например значение isApproved, чтобы сделать его от false до true.Вам необходимо обновить таблицу по идентификатору этой записи.

Существует несколько способов решения этой проблемы.Вы можете отсоединить старый объект перед тем, как присоединить новый экземпляр

public ActionResult Edit(User user)
{ 
        if (ModelState.IsValid)
        {
            var OldInsObj = db.Users.Find(user.UserId);
            DateTime UsersDateCreated = OldInsObj.UsersDateCreated;

            user.UsersDateCreated = UsersDateCreated;
            user.UsersDateModified = DateTime.Now;

            db.Entry(OldInsObj).State = EntityState.Detached;

            db.Entry(user).State = EntityState.Modified;

            db.SaveChanges();
            return RedirectToAction("Index");
        }
 }

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

public ActionResult Edit(int userId)
{ 
        var user = db.Users.Find(userId);

        if (TryUpdateModel(user))
        {                
            user.UsersDateCreated = UsersDateCreated;

            user.UsersDateModified = DateTime.Now;

            db.SaveChanges();
            return RedirectToAction("Index");
        }
 }

Или вы можете использовать Automapper для копирования значенийпользовательский экземпляр для экземпляра OldInsObj.

public ActionResult Edit(User user)
{ 
        if (ModelState.IsValid)
        {
            var OldInsObj = db.Users.Find(user.UserId);
            DateTime UsersDateCreated = OldInsObj.UsersDateCreated;

            OldInsObj = Mapper.Map(user);

            OldInsObj.UsersDateCreated = UsersDateCreated;
            OldInsObj.UsersDateModified = DateTime.Now;

            db.SaveChanges();
            return RedirectToAction("Index");
        }
 }

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

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