私はをViewbag経由でビューに渡しました。このリストはjavascriptのvarに割り当てられ、ループしています。型付きのViewbagリストをループする方法は?
しかし、私はブレークポイントを設定しましたが、このforループのループは繰り返されません。
このループの目的は、adminUserList
のユーザーが現在ログインしているユーザーと一致するかどうかを確認することです。 currentUser
もinitであるため、この値を除外するルールはnullです。
この理由をデバッグするためです。私はViewbag.AdminUserList
が割り当てられていて、それがコントローラであることをテストしました。私もこのリストのビューでアラートを設定し、initです。
質問:以下for loop
はJavaScriptで呼び出されていない理由
、誰もが知っていますか?
これは、デバッグの際のjs adminUserListの値である:
var adminUserList = [{"AdminID":1,"AdminDisplayName":"brianb","AdminEmailAddress":"[email protected]"},{"AdminID":2,"AdminDisplayName":"wendy","AdminEmailAddress":"[email protected]"}];
コード:ループの
Javascriptを -
<script>
var currentUser = '@ViewBag.CurrUser';
var adminUserList = @Html.Raw(Json.Encode(ViewBag.AdminUserList));
$(document).ready(function() {
var historyTable = $('#table').DataTable({
"order": [[6, "desc"]]
});
//Loop through each of the admin users, if any of
//the admin users match the current user, hide the delete column.
for (var i = 0; i < adminUserList.Count; i++)
{
if (currentUser == adminUserList.AdminDisplayName[i]) {
//hide the delete table option from a non admin user
historyTable.columns([9]).visible(false);
}
}
});
</script>
コントローラIndexメソッド -
public ActionResult Index()
{
HistoryDAL sqlConnection = new HistoryDAL();
List<AdminUsers> adminList = sqlConnection.GetAdminUsers();
//Get the current user
var components = User.Identity.Name.Split('\\');
var userName = components.Last();
//Assign current user and admin list to viewbag
ViewBag.CurrUser = userName;
ViewBag.AdminUserList = adminList;
return View("Index");
}
の
モデル - アクセスadminusers:
public class AdminUsers
{
public int AdminID { get; set; }
public string AdminDisplayName { get; set; }
public string AdminEmailAddress { get; set; }
}
adminUserListの値は何ですか? –
@JohnMc私は上記の値を掲示しましたか? –