Básicamente estoy tratando de ocultar los botones ACEPTAR o RECHAZAR dentro del div de "botones" en mi vista en función de los valores de "d_status" que es "ACEPTADO" o "RECHAZADO" o "PENDIENTE" y estos valores provienen del modelo, sin embargo, soy bastante nuevo en asp.net, aquí está mi código:
<tbody> @foreach (var Data in Model) { <script> if (@Data.d_status == "ACCEPTED" || @Data.d_status == "REJECTED") { document.getElementById("buttons").style.display = 'none';} </script> <tr> <td>@Data.donor_ID</td> <td>@Data.donor_Name</td> <td>@Data.donor_condition</td> <td>@Data.donor_BG</td> <td>@Data.donor_date</td> <td>@Data.drequest_date</td> <td>@Data.d_status</td> //checks status <td> <div id="buttons"> //hide this div <a href="@Url.Action("AcceptDonorRequest","Admin", new {ID = Data.donor_ID })" class="btn btn-success btn-lg">ACCEPT</a> <a href="@Url.Action("RejectDonorRequest","Admin", new {ID = Data.donor_ID })" class="btn btn-danger btn-lg">REJECT</a> </div> </td> </tr>} </tbody>¿Hay un mejor enfoque para esto? O como se puede arreglar esto?
Puede hacer esto fácilmente así (simplificó un poco el código para facilitar la lectura):
@if (!(Data.d_status == "ACCEPTED" || Data.d_status == "REJECTED")) { <div> //hide this div <a class="btn btn-success btn-lg">ACCEPT</a> <a class="btn btn-danger btn-lg">REJECT</a> </div> } No hay necesidad de javascript en este caso. Si la condición if es false , todo lo que contiene no se renderizará.
Aquí hay un enlace a Microsoft Docs para esto. Tal vez te ayude a comprender mejor la sintaxis de Razor: https://docs.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-5.0#conditionals-if-else-if-else -y-cambiar
Puedes hacerlo como a continuación
@if (Data.d_status == "ACCEPTED" || Data.d_status == "REJECTED") { <div> </div> } else { <div id="buttons"> //hide this div <a href="@Url.Action("AcceptDonorRequest","Admin", new {ID = Data.donor_ID })" class="btn btn-success btn-lg">ACCEPT</a> <a href="@Url.Action("RejectDonorRequest","Admin", new {ID = Data.donor_ID })" class="btn btn-danger btn-lg">REJECT</a> </div> }