سلام چرا در حالی که من دقیقا از کد های اموزش استفاده کردم لیست دسترسی رو نمایش نمی دهد.
سلام کد تون رو چک کنید
کد های جلسه بعدی رو مجدد چک کنید
از سرویس تون عکس بدید
ممنون
کد رو درخواست نکردید
انتیتی های موجود رو باید فرخوانی کنید در قسمت گت
در قسمت های بعدی اموزش داده شده
ببخشید مشکل اینه کلا برای ویو شما کدی ننوشتید من تا قسمت 36 نگاه کردم
ادامه بدید نوشته شدهه
من قسمت اخر رو هم دیدم نوشته نشده متاسفانه وقتی وارد قسمت مدیریت نقش ها میشی و افزودن رو میزنیم قسمت سطح دسترستی چیزی نمایش داده نمیشه بخاطر این است کد در سمت ویو ندارد.
من فایل های قسمت 80 هم نگاه کردم فراموش کردید کد بزنید
پس ب عنوان تمرین گفتم خودتون انجام بدید
الان قسمت هارو دیدم چون در قسمت ویرایش انجام دادم این موضوع رو
گفتم ب عنوان تمرین قسمت افزودن رو خودتون انجام بدید چون کد هاش تقریبا مثل هم هست
خب من از قسمت ویرایش کپی کردم چرا این خطا رو میده
لطفا یزره دقت کنید
همینجوری کد هارو کپی پیست نکنید
شما صرفا دوره ای رو میگیرید که یاد بگیرید چجوری پیاده سازی کنید ن این که کپی پیست از پروژه های دیگه ب پروژه دیگه
امیدوارم من اشتباه کنم و قطعا همینطوره من اشتباه میگم
در خصوص کد بالا ما نیازه ب اون خط کد نداریم اون خط کد فقط برای اینکه که داده ای که از قبل تو بانک بود inpute چک باکسش
اتربیوت چکد بگیره یعنی انتخاب شده ما که موقع ساخت نیازی به اون نداریم پس حذفش کنید
ببخشید استاد خب حذف کنیم خطوط پایین هم بخشی باید حذف بشه و در نهایت برای ثبت باید چک باکس باشه که انتخاب کنیم. و دکمه ثبت اطلاعاتی رو ثبت نمیکنه
@model CreateOrEditRoleViewModel
@{
ViewData["Title"] = "افزودن نقش";
var permissions = (List<Permission>)ViewData["Permissions"];
}
<div class="row mt-4">
<div class="col-md-8">
<div class="card shadow-sm">
<div class="card-body">
<p class="card-text">ثبت اطلاعات</p>
<form asp-area="Admin" asp-controller="User" asp-action="CreateRole" method="post">
<div class="form-group">
<label class="form-lable">نام نقش</label>
<input class="form-control" asp-for="RoleTitle">
<span asp-validation-for="RoleTitle" class="text-danger"></span>
</div>
<div class="mt-5">
<button type="submit" class="btn btn-success btn-block ">ثبت اطلاعات</button>
</div>
</form>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card shadow-sm">
<div class="card-body">
<p class="card-text">سطح دسترسی ها</p>
<p class="card-text">سطح دسترسی ها</p>
@if (permissions != null && permissions.Any())
{
@foreach (var permission in permissions.Where(c => c.ParentId == null))
{
<div class="checkbox">
<label>
<input type="checkbox" name="@nameof(Model.SelectedPermission)" value="@permission.Id" />
<span class="text">@permission.Title</span>
</label>
</div>
@foreach (var subPermission in permissions.Where(c => c.ParentId == permission.Id))
{
<div class="checkbox" style="margin-right: 17px;">
<label>
<input type="checkbox" name="@nameof(Model.SelectedPermission)" value="@subPermission.Id" />
<span class="text">@subPermission.Title</span>
</label>
</div>
}
}
}
</div>
</div>
</div>
</div>
</div>
@section scripts{
<partial name="_ValidationScripts" />
}
----------------------------------------------------------------
CONTOROLLER
controller
--------------------------------
#region create Role
[HttpGet]
public async Task<IActionResult> CreateRole()
{
ViewData["Permissions"] = await _userService.GetAllActivePermission();
return View();
}
[HttpPost,ValidateAntiForgeryToken]
public async Task<IActionResult> CreateRole(CreateOrEditRoleViewModel create)
{
ViewData["Permissions"] = await _userService.GetAllActivePermission();
if (ModelState.IsValid)
{
var result = await _userService.CreateOrEditRole(create);
switch (result)
{
case CreateOrEditRoleResult.NotFound:
break;
case CreateOrEditRoleResult.NotExistPermissions:
TempData[WarningMessage] = "لطفا نقشی را انتخاب کنید";
break;
case CreateOrEditRoleResult.Success:
TempData[SuccessMessage] = "عملیات افزودن نقش با موفقیت انجام شد";
return RedirectToAction("FilterRoles");
}
}
return View(create);
}
#endregion
موفق باشید
خیلی ممنونم استاد. خطا را در هنگام ثبت داد اگه براتون مقدور بود بررسی کنید.
پروژه من درسته کد هارو بررسی کنید
سلام اینم هنگام ثبت
public async Task<CreateOrEditRoleResult> CreateOrEditRole(CreateOrEditRoleViewModel createOrEditRole)
{
if (createOrEditRole.Id != 0)
{
var role = await _userRepository.GetRoleById(createOrEditRole.Id);
if (role == null)
return CreateOrEditRoleResult.NotFound;
role.RoleTitle = createOrEditRole.RoleTitle;
_userRepository.UpdateRole(role);
await _userRepository.RemoveAllPermissionSelectedRole(createOrEditRole.Id);
if (createOrEditRole.SelectedPermission == null)
{
return CreateOrEditRoleResult.NotExistPermissions;
}
await _userRepository.AddPermissionToRole(createOrEditRole.SelectedPermission, createOrEditRole.Id);
await _userRepository.SaveChange();
return CreateOrEditRoleResult.Success;
}
else
{
//create
var newRole = new Role
{
RoleTitle = createOrEditRole.RoleTitle,
CreateDate=DateTime.Now
};
await _userRepository.CreateRole(newRole);
await _userRepository.SaveChange();
if (createOrEditRole.SelectedPermission == null)
{
return CreateOrEditRoleResult.NotExistPermissions;
}
await _userRepository.AddPermissionToRole(createOrEditRole.SelectedPermission, newRole.Id);
await _userRepository.SaveChange();
return CreateOrEditRoleResult.Success;
}
}
@model CreateOrEditRoleViewModel
@{
ViewData["Title"] = "افزودن نقش";
var permissions = (List<Permission>)ViewData["Permissions"];
}
<form asp-area="Admin" asp-controller="User" asp-action="CreateRole" method="post">
<div class="row mt-4">
<div class="col-md-8">
<div class="card shadow-sm">
<div class="card-body">
<p class="card-text">ثبت اطلاعات</p>
<div class="form-group">
<label class="form-lable">نام نقش</label>
<input class="form-control" asp-for="RoleTitle">
<span asp-validation-for="RoleTitle" class="text-danger"></span>
</div>
<div class="mt-5">
<button type="submit" class="btn btn-success btn-block ">ثبت اطلاعات</button>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card shadow-sm">
<div class="card-body">
<p class="card-text">سطح دسترسی ها</p>
@if (permissions != null && permissions.Any())
{
@foreach (var permission in permissions.Where(c => c.ParentId == null))
{
<div class="checkbox">
<label>
<input type="checkbox" name="@nameof(Model.SelectedPermission)" value="@permission.Id" />
<span class="text">@permission.Title</span>
</label>
</div>
@foreach (var subPermission in permissions.Where(c => c.ParentId == permission.Id))
{
<div class="checkbox" style="margin-right: 17px;">
<label>
<input type="checkbox" name="@nameof(Model.SelectedPermission)" value="@subPermission.Id" />
<span class="text">@subPermission.Title</span>
</label>
</div>
}
}
}
</div>
</div>
</div>
</div>
</form>
@section scripts{
<partial name="_ValidationScripts" />
}
تو سرویس بزارید
پروژه من مشکلی نیست باز شما تست کنید
خیلی ممنون مشکل حل شد