دسته بندی ها
12:15 1400/03/25

رفع خطای Value cannot be null هنگام استفاده از پلاگین JsTree

مشخصات سوال کننده :
کاربر : yasasemani     امتیاز کاربر : 6     رتبه کاربر : 80
دسته بندی : Asp.net Core جی کوئری

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3263
هوش مصنوعی

پاسخ هوش مصنوعی

خطای "Value cannot be null" به این علت رخ می دهد که ورودی `SelectedItems` به کنترلر، به هنگام ارسال خالی است یا null است. برای رفع این مشکل موارد زیر را بررسی کنید:

  • اطمینان از اعتبار داده: قبل از ارسال داده ها به کنترلر، اطمینان حاصل کنید که مقدار `SelectedItems` خالی نیست. می توانید در تابع جاوااسکریپت مربوط به رویداد `changed.jstree`، بررسی کنید که آیا انتخابی انجام شده است یا خیر.
  • چک کردن مقدار انتخاب شده: قبل از فراخوانی `$("#SelectedItems").val(JSON.stringify(postedItems));` اطمینان حاصل کنید که آرایه `postedItems` حداقل یک عنصر دارد.

برای مثال، می توانید به کد جاوااسکریپت زیر توجه کنید و تغییرات لازم را انجام دهید:


$(function () {
    $("#jstreesyspart").on("changed.jstree", function (e, data) {
        var postedItems = [];

        // بررسی اینکه آیا انتخابی وجود دارد
        if (data.selected.length > 0) {
            for (var i = 0; i < data.selected.length; i++) {
                postedItems.push({
                    text: data.instance.get_node(data.selected[i]).text,
                    id: data.selected[i],
                    parent: data.node.parents[0]
                });
            }
            // مقدار SelectedItems را تنها در صورت وجود انتخاب تنظیم کنید
            $("#SelectedItems").val(JSON.stringify(postedItems));
        } else {
            $("#SelectedItems").val(''); // در صورت عدم انتخاب، مقدار را خالی کنید
        }
    }).jstree({
        // پیکربندی jsTree
    });
});

همچنین می توانید در کنترلر خود، پیش از فراخوانی `JsonConvert.DeserializeObject` بررسی کنید که آیا `SelectedItems` خالی است یا نه:


if (string.IsNullOrEmpty(SelectedItems)) {
    return Json(new { status = "noselected" });
}

با این کار می توانید از ایجاد خطا در اثر ورودی خالی جلوگیری کنید و از طریقی مدیریت بهتری برای ورودی های نادرست فراهم نمایید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود