Ядро asp.net отображает таблицу в виде с кнопками рядом с каждой строкой.после нажатия кнопки вносит изменения в базу данных - PullRequest
0 голосов
/ 28 февраля 2019

помогите пожалуйста решить проблему мне нужно отобразить таблицу со значениями.Рядом с каждой строкой будут две кнопки «Подтвердить» и «Сбой».Каждая кнопка вносит изменения в строку в таблице дБ после нажатия

mytable

enter image description here

после нажатия кнопки появляется

enter image description here

Контроллер

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using web_cel.Models;

namespace web_cel.Controllers
{
    public class StatusController : Controller
    {
        private readonly web_celContext _context;

        public StatusController(web_celContext context)
        {
            _context = context;
        }

        public async Task<IActionResult> Index()
        {
            return View(await _context.Status.ToListAsync());
        }

        [HttpPost]
        public IActionResult Sogl(int id)
        {
            _context.Status.FromSql("UPDATE [Status] SET Progress = 'confirm' WHERE id='1';");

            return Redirect("/Status/Index");
        }

        private bool StatusExists(int id)
        {
            return _context.Status.Any(e => e.Id == id);
        }
    }
}

Модель

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace web_cel.Models
{
    public class Status
    {               
        public int Id { get; set; }
        public string Zadacha { get; set; }
        public string Progress { get; set; }
    }
}

Вид

@model IEnumerable<web_cel.Models.Status>

@{
    ViewData["Title"] = "Page";
}

<p>
  <a class="btn btn-default" asp-action="Create">
    Подать отчет
  </a>
</p>
<table class="table">
  <thead>
    <tr>
      <th>
        Задача
      </th>
      <th></th>
    </tr>
  </thead>
  <tbody>
  @foreach (var item in Model) {
    <tr>
      <td>
        @Html.DisplayFor(modelItem => item.Zadacha)
      </td>
      <td>
        <form action="" method="post">
          <input type="submit" value="Option 1" formaction="Sogl" />
        </form>
      </td>
      <td>
        <a class="btn btn-default" asp-action="Sogl">
          Подать отчет
        </a>
      </td>
    </tr>
  }
  </tbody>
</table>

1 Ответ

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

Измените свою форму на:

<form asp-action="Sogl" method="post">
    <input type="submit" value="Option 1" />
    @Html.Hidden("Id", item.Id)
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...