Если вы хотите, чтобы значения изменялись и запускались переключателем флажка, примите во внимание эти предложения.
Используйте jQuery, чтобы прикрепить событие для каждого из ваших флажков.Сделайте, чтобы это сделало AJAX-вызов к URL в вашем контроллере.Это событие будет срабатывать при каждом переключении и запускать следующий код:
$.ajax({
//this could also be built with '<%= Url.Action("UpdateUserRole","User") %>/
url: "/User/UpdateUserRole",
type: "POST",
data: {
"userID" : "", //somehow place the user's ID here - cookie, session, etc.
"roleID" : $('#theCheckbox').val(),
},
success: function(data) { alert(data); }
});
Создайте этот новый метод действия контроллера.Возможно, это выглядит так:
public string UpdateUserRole(int userID, int roleID){
//go update the DB with the 2 params as needed.
}
Внутри вы можете вызвать свою базу данных, чтобы удалить / добавить роль пользователю, в зависимости от того, существует ли она в настоящее время.Вам решать, хотите ли вы, чтобы логическое значение указывало на включение / отключение, но это усложнит ваш вид.Мое предложение сделало бы действие простым «изменением» состояния в базе данных.Если существует пара пользователь / роль, удалите его.Если это не так, создайте его.
Обеспечьте безопасность этого метода контроллера.Возможно, вы не захотите, чтобы кто-нибудь обнаружил, как работает схема.Возможно, включите в свою форму Html.AntiForgeryToken
и укажите это в методе контроллера.