У меня 2 стола; WorkSchedule (родительский) и WorkShiftBid (дочерний). Прямо сейчас я могу обновить WSBidStatus
до «Одобрено», когда нажата кнопка на моей WorkShiftBid
странице просмотра.
У меня есть столбец состояния (WorkScheduleStatus
и WSBidStatus
) в обоих таблицы и то, что я хочу, например, когда кнопка нажата, оба состояния будут обновлены до «Утверждено», где WorkScheduleID
в обеих таблицах одинаковы.
Как должен выглядеть мой контроллер для этого?
Модель:
namespace Website.Models
{
public class WorkScheduleModel
{
[Key]
public Guid WorkScheduleID { get; set; }
public string WorkScheduleStatus { get; set; }
}
public class WorkShiftBidModel
{
[Key]
public Guid WorkShiftBidID { get; set; }
public string WSBidStatus { get; set; }
public Guid WorkScheduleID { get; set; }
[ForeignKey("WorkScheduleID")]
public WorkScheduleModel WorkSchedules { get; set; }
}
}
Контроллер:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> WorkShiftBid(Guid? id)
{
SqlConnection con = new SqlConnection();
SqlCommand com = new SqlCommand();
SqlDataReader dr;
connectionString();
con.Open();
com.Connection = con;
com.CommandText = "update WorkShiftBid set WSBidStatus ='Approved' where WorkShiftBidID = @id ";
com.Parameters.AddWithValue("@id", id);
dr = com.ExecuteReader();
var workShiftBidModel = await _context.WorkShiftBid.FindAsync(id);
if (dr.Read())
{
con.Close();
return RedirectToAction(nameof(WorkShiftBid));
}
else
{
con.Close();
return RedirectToAction(nameof(WorkShiftBid));
}
void connectionString()
{
con.ConnectionString = ".........................";
}
}
Вид:
@model IEnumerable<WorkShiftBidModel>
<table class="table">
<thead>
<tr>
<td>
<th>
.
.
.
</th>
<form method="post">
<input type="submit" class="btn btn-success btn-block" value="Approve" asp-route-id="@item.WorkShiftBidID" asp-action="WorkShiftTab" asp-controller="Manager" />
</form>
</td>
</tr>
}
</tbody>
</table>