سلام استاد . من طبق آموزشتون در قسمت اضافه کردن سرگروه جدید به صورت ajax کد اضافه کردن رو میزنم . اما بعد از اضافه کردن در modal نه UpdateTargetID کار میکنه نه بخش Success و نه لیستم بهش اضافه میشه . باید مجدد صفحه رو refresh کنم تا بیاد و اینکه کد هام به این صورت هستش
کدهای کنترلرم
[HttpGet]
public ActionResult Create()
{
return PartialView();
}
public ActionResult ListGroups()
{
var listOfProductGroups = _iProductGroupsRepo.getAllProductGroups().Where(a => a.ParentID == null);
return PartialView(listOfProductGroups.ToList());
}
[HttpPost]
public ActionResult Create(ProductGroups productGroups)
{
_iProductGroupsRepo.addProducts(productGroups);
_iProductGroupsRepo.save();
return PartialView("ListGroups", _iProductGroupsRepo.getAllProductGroups().Where(a => a.ParentID == null));
}
کدهای مربوط به صفحه Create.cshtml
@model DomainClasses.Models.ProductGroups
@using (Ajax.BeginForm("Create","ProductGroups",FormMethod.Post,new AjaxOptions()
{
OnSuccess = "success",
UpdateTargetId = "listGroups"
}))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.GroupTitle, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.GroupTitle, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.GroupTitle, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="افزودن" class="btn btn-primary" />
</div>
</div>
</div>
}
رفرنس هایی که برای کتابخانه اسکریپتم درون لایوت پروژه دادم
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
بخش فراخوانی لیستم درون Index
<div id="listGroups">
@Html.Action("ListGroups")
</div>
و در نهایت کدهای اسکریپتی که زدم
<script>
function Create() {
$.get("/Admin/ProductGroups/Create",
function(result) {
$("#myModal").modal();
$("#myModalLabel").html("افزودن سرگروه جدید ");
$("#myModalBody").html(result);
});
}
function success() {
$("#myModal").modal('hide');
}
</script>
تنظیمات اضافه شده در فایل Web.Config هم به این صورته
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="MyDomain" value="http://localhost:1929" />
</appSettings>
سلام
کدهاتون رو با کدهای نمونه مقایسه کنید
ظاهرا این کدها مشکلی ندارند
باید لاگ کنسول مرورگر رو بررسی کنید
کنسول رو چک کردم و خطای شماره 500 میده و به این قسمت گیر میده
Value cannot be null.
Parameter name: source
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: source
Source Error:
Line 20: </td>
Line 21: <td>
Line 22: @if (item.Product_Groups1.Any())
Line 23: {
Line 24: <ul>
Source File: c:\users\pourya\documents\visual studio 2017\Projects\MyEshop\MyEshop\Areas\Admin\Views\ProductGroups\ListGroups.cshtml Line: 22
میگه نال نمیتونه باشه درسته ؟ وقتی چک میکنیم ببینیم زیر گروهی داره یا نه .
چه کنم ؟ :(
ممنون میشم کمکم کنین استاد
دوست من باید debug کنید تا مشکل پیدا بشه
من چشمی میبینم مشکلی نیست
if (item.Product_Groups1!=null && item.Product_Groups1.Any())