Also technisch was ich habe funktioniert, aber es ist EXTREM langsam.Entfernen Sie Tabelle Spalte basierend auf Benutzergruppe Mitgliedschaft
Zusammenfassend: Ich frage eine Datenbank nach Daten und erstelle dann ein Ansichtsmodell, das diese Daten gepaart mit einem Objekt enthält, das Benutzer-AD-Daten enthält.
Hier ist meine Viewmodel:
public class SearchViewModel
{
public List<Submission> submissionList { get; set; }
public LoggedInUser User
{
get
{
return new LoggedInUser();
}
}
}
public class Submission
{
//... All the things ...
}
LoggedInUser
ist eine Hilfsklasse, die ich habe, die mehrere verschiedene Anzeigenattribute enthalten, aber für diese Angelegenheit Ich betrachte einen Bool-Wert namens isAdmin
. Wenn Admin ist True
Ich möchte eine bestimmte Spalte angezeigt werden.
So mache ich es über Razor/Html.
<table class="datatable table table-bordered table-condensed">
<thead>
<tr>
//. . . Column Headers . . .
@if(Model.User.isAdmin)
{
<th />
}
</tr>
</thead>
<tbody>
@foreach (var item in Model.submissionList)
{
<tr id="@item.ID">
//. . . Column Content . . .
@if(Model.User.isAdmin)
{
<td>
<div id="[email protected]">
<a href="#" onclick="quickApprove(@item.ID)">
<i class="fa fa-check text-success fa-lg" data-toggle="tooltip" data-placement="top" title="Submit for approval!"></i>
</a>
</div>
</td>
}
</tr>
}
</tbody>
</table>
Wenn ich die Prüfungen für die isAdmin
entfernen, zeigen die Informationen viel schneller. Von 5 Minuten auf ungefähr 10 Sekunden.
Gibt es möglicherweise eine bessere Implementierung mit Javascript?
Bitte beachten Sie, dass der Model-View-Controller-Tag für Fragen über das Muster ist. Es gibt ein bestimmtes Tag für die ASP.NET-MVC-Implementierung. –