ورود

View Full Version : سوال: خطا هنگام کار با ایجکس(کمک فوری لطفا)



پروگرامنویس
دوشنبه 30 مهر 1397, 23:50 عصر
سلام
من دوتا دراپ داون لیست دارم برای استان و شهرها
میخوام وقتی استانیرو انتخاب مکنم بصورت ایجکس شهرها توی اون یکی بارگزاری بشه
برک پوینت که میزارم عملیات تا اکشن هم بدرستی اجرا میشهولی موقع براگشت توی ایجکس متد ارور اجرا میشه و خطای 500 و Internal server error رو نشون میده!
لطفا کمک کنیدد. روزه اسیرم کرده!

کد اکشن:


[HttpPost]
public JsonResult SelectCity(int stateId)
{
var result = db.States.Where(m => m.id_Parent == stateId).Select(c => new { c.ID, c.Name });
return Json(result, JsonRequestBehavior.AllowGet);
}


کد ویو:


<dd>
<select name="State" id="slOstan">

@foreach (var item in Model.Ostans)
{
<option value="@item.ID">@item.Name</option>
}

</select>
</dd>


<dd>
<select name="City" id="slCity">
</select>
</dd>



<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<script src="~/Scripts/jquery-ui-1.12.1.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script>
$(document).ready(function () {
// تمرین پر شدن لیست شهرهای هر استان
$('#slOstan').change(function () {

debugger;
var stateId = $("#slOstan").val();
$.ajax({
type: "POST",
url: "/Home/SelectCity",
stateId,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
$("#slCity").html("");
$.each($.parseJSON(result), function () {
op = '<option value=' + result.Id + '>' + result.Name + '</option>';
$("#slCity").append(op);
});
alert('ffffffffff')
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(xhr.responseText);
alert(thrownError);
}
});
});
});

</script>

hakim22
سه شنبه 01 آبان 1397, 10:12 صبح
اول اینکه به نظرم بهتره بجای استفاده از دیتابیس برای خوندن اطلاعات استانها و شهرها از یک json استفاده کنید. با این تکنیک اطلاعات مثل فایلهای CSS مستقیما خونده میشه و نیازی به اکشن در کنترلر ندارید.
ضمن اینکه لازم نیست دوباره درخواستی رو برای فیلتر کردن اطلاعات شهرها به سرور بفرستید. اطلاعات استانها و شهرهارو کامل در صفحه بیارید و با استفاده از جاوا اسکریپت فیلتر کنید.

من قبلا یک پروژه ی نمونه با ASP.NET Core پیاده کردم که می توانید از آدرس زیر دانلود کنید :
کد نمونه هم با jQuery نوشته شده و هم با Vue.js

https://github.com/codehaks/Profile-App



(https://github.com/codehaks/Profile-App)

پروگرامنویس
سه شنبه 01 آبان 1397, 10:37 صبح
اول اینکه به نظرم بهتره بجای استفاده از دیتابیس برای خوندن اطلاعات استانها و شهرها از یک json استفاده کنید. با این تکنیک اطلاعات مثل فایلهای CSS مستقیما خونده میشه و نیازی به اکشن در کنترلر ندارید.
ضمن اینکه لازم نیست دوباره درخواستی رو برای فیلتر کردن اطلاعات شهرها به سرور بفرستید. اطلاعات استانها و شهرهارو کامل در صفحه بیارید و با استفاده از جاوا اسکریپت فیلتر کنید.

من قبلا یک پروژه ی نمونه با ASP.NET Core پیاده کردم که می توانید از آدرس زیر دانلود کنید :
کد نمونه هم با jQuery نوشته شده و هم با Vue.js

https://github.com/codehaks/Profile-App



(https://github.com/codehaks/Profile-App)

دستتون واقعا درد نکنه
پروژه تون رو دانلود کردم ولی نمیدونم چرا ویژوال استودیو درستبارگزاری نمیکنه
میشه همین جا یه زحمتی نیست یه مثال بزنید ؟ اصلا وقت ندارم
اگه این کار رو بکنید ممنون تون میشم