من پروژه ام رو با asp.net core 3.1 نوشتم و از jstree برای نمایش درختی استفاده کردم .... میخوام بتونم دسترسی های یک گروه رو تغییر دهم ولی با خطای (Value cannot be null. (Parameter 'value روبرو میشم و نمی تونم علت خطا رو به درستی متوجه شم ممنون میشم راهنمایی کنید.
وقتی به خط زیر میرسه این خطا رو میده
List<TreeViewModel> items = JsonConvert.DeserializeObject<List<TreeViewModel>>(SelectedItems);
کد سمت کنترلر
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> AddKeyToGroup(string SelectedItems, int GroupId)
{
if (ModelState.IsValid)
{
try
{
//تبدیل رشته جیسون به یک لیست
List<TreeViewModel> items = JsonConvert.DeserializeObject<List<TreeViewModel>>(SelectedItems);
if (items.Count() == 0)
{
return Json(new { status = "noselected" });
}
//پیدا کردن گروه
var group = _context.UserGroupKeys.Find(GroupId);
// حذف گروه
var deleteGroup = _context.UserGroupKeys
.Where(m => m.GroupId == GroupId)
.FirstOrDefault();
_context.UserGroupKeys.Remove(deleteGroup);
if (deleteGroup == null)
{
ViewBag.error = "هیچ دسترسی برای گروه مورد وجود نداشت";
}
else
{
for(int i = 0; i<= items.Count -1; i++)
{
UserGroupKey userGroupKey = await _context.UserGroupKeys.FindAsync(items[i].id);
if( userGroupKey != null)
{
_context.UserGroupKeys.Add(userGroupKey);
userGroupKey.IsActive = true;
await _context.SaveChangesAsync();
}
}
}
}
catch (DbUpdateConcurrencyException)
{
return RedirectToAction("ErrorView", "Home");
}
}
return View();
}
کد سمت Html
@{
ViewData["Title"] = " انتساب دسترسی به گروه ";
}
<div class="content">
<div class="panel panel-heading" style="box-shadow:3px 1px 0 gray; border-radius:2px; background-color:#fff;">
<span style="font-weight:bold;">
<i class="fa fa-universal-access" aria-hidden="true"></i>
انتساب دسترسی به گروه - <span style="color:darkgoldenrod;">@ViewBag.GroupDesc</span>
</span>
</div>
<div id="divmsg" style="text-align:center; font-weight:bold" class=""></div>
<div class="alert alert-info" style="border: 1px solid gray;
margin-top: 15px;
text-align: center;
font-size: 15px;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #1861ac), color-stop(100%, #4a5564));
color: #fff">
برای ثبت دسترسی، یک یا چند دسترسی را تیک بزنید
</div>
<div class="panel panel-body container-fluid" style="border-radius:2px; box-shadow:0px 1px 3px 0px rgba(0,0,0,0.12);
display:grid; padding: 3em; background-color:#fff;">
<form asp-controller="UserGroupKeys" asp-action="AddKeyToGroup" method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div id="jstreesyspart">
</div>
<div class="col-xs-12 form-group" style="margin-top:15px;">
<input type="submit" style="border:1px solid gray; border-radius:3px;" class="btn pull-right" value="ثبت دسترسی" />
</div>
</form>
</div>
@if (ViewBag.groupRole != null)
{
<input id="rolelist" type="hidden" value="@ViewBag.groupRole" />
}
<input name="SelectedItems" id="SelectedItems" type="hidden" />
<input name="GroupId" id="GroupId" type="hidden" value="@ViewBag.GroupId" />
<div class="col-xs-12 form-group" style="margin-top:15px;">
</div>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
<script>
$(function () {
$("#jstreesyspart").on("changed.jstree", function (e, data) {
var i, j;
var postedItems = [];
j = data.selected.length;
for (var i = 0; i < j; i++) {
postedItems.push({
text: data.instance.get_node(data.selected[i]).text,
id: data.selected[i],
parent: data.node.parents[0]
});
$("#SelectedItems").val(JSON.stringify(postedItems));
}
}).jstree({
"core": {
"themes": {
"variant":"large"
},
"data": @Html.Raw(ViewBag.SystemPart) ,
},
"checkbox": {
"visable": true,
"Keep_selected_style":false
},
"plugins": ["checkbox"]
//checkbox: { three_state: false, cascade:"" }
}).on("loaded.jstree", function () {
$.jstree.reference('#jstreesyspart').open_all();
var urole = $("#rolelist").val().split(",");
$("#jstreesyspart").jstree(true).select_node(urole);
});
});
</script>
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
75
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
109
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1033
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
428
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4797
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
214
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
396
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
567
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2008
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
75
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
109
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1033
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
428
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4797
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1160
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
597
- پاسخ :
1
|