PDA

View Full Version : سوال: اجرا نشدن ajax



r4hgozar
چهارشنبه 03 تیر 1394, 12:00 عصر
سلام.
من از این کد تو 3 تا پروژه دیه استفاده کردم.
اما الان هر کاری می کنم ارور میده

$.ajax({
type: "POST",
Url: "/Search/SearchResult",
data: {
id: $("#id").val(),
typs: $("option:selected").val(),
price1: $("#price1").val(),
price2: $("#price1").val()
},
datatype: "Json",
success: function (result) {
if (result.Success) {
$("#Divresult").html(result.Html);
}
eval(result.Script);
},
error: function () {
alert("خطا اجرا نشدن!");
}
});



خطا میده
404 Not Found - http://localhost:20220/Search/Index
404 Not Found - http://localhost:20220/Search/SearchResult (http://localhost:20220/Search/Index)

2 روزه به زبون روزه مارو گیر اورده.

ممنون از همه

niloo17
چهارشنبه 03 تیر 1394, 12:50 عصر
کد کنترلر را اگه بذارید راحتر می تونبم راهنماییتون کنبد.
ولی در کل می تونید به این صورت بتویسید .




$.ajax({
url: '@Url.Action("FindBill", "WeightControl")',
type: 'POST',
data: { value: item },
success: function (result) {
$("#bill").text(result.bill);
$("#bill").removeClass("alert-danger");
}
});


و در کنترلر



public ActionResult FindBill(string value)
{


return Json(new { bill=result}, JsonRequestBehavior.AllowGet);
}

r4hgozar
چهارشنبه 03 تیر 1394, 13:09 عصر
[HttpPost]
public ActionResult SearchResult(int? id, Guid typs, int? price1, int? price2)
{
if (!ModelState.IsValid) return RedirectToAction("Index", "Home");
var model = _estate.Search(id, typs, price1, price2);
return Json(new JsonData
{
Script = MessageBox.Show("با موفقیت ثبت شد", MessageType.Success).Script,
Success = true,
});
}




مهم درست یا اشتباه بودن جوابش نیست.
مهم اینه که چرا اکشن رو نمی شناسه/
[JAVASCRIPT]
url: '@Url.Action("FindBill", "WeightControl")'
/JAVASCRIPT]

اینطوری هم آدرس دادم اما نشد

mo.jalilian
چهارشنبه 03 تیر 1394, 15:25 عصر
ادرستون رو داخل مرورگر وارد کنید، وقتی براتون متد ها را اورد، همون رو دقیقا وارد کنید و مجددا تست کتید.
جواب که گرفتید، قسمت مربوط به دامین را پاک کنید و ادرس دهی داخلیتون رو مشخص کنید نسبت به فایلی که فراخوانی انجام می شود

r4hgozar
چهارشنبه 03 تیر 1394, 15:43 عصر
ممنون دوست عزیز قبلا همین کارو کردم.
اما وقتی
http://localhost:20220/Search/SearchResult (http://localhost:20220/Search/Index) رو میزنم اصلا نمی شناسه/
ارور میده

404 Not Found - http://localhost:20220/Search/SearchResult (http://localhost:20220/Search/Index)
تو stackoverflow خوندم یکی همین مشکل رو داشت گفته بود واسته اینه که mvc رو آپدییت کرد و وقتی دوباره برگشت به ورژن قدیمی تر درست شد.
من هم mvc رو از طریق nuget آپدیت کردم.
شاید واسه اون باشه.

RIG000
پنج شنبه 04 تیر 1394, 07:28 صبح
ببین اینطوری حل مییشه. رفرنس رو باز کن ببین چه dll های fake شدن و دوباره اونها رو اضافه کن.... والبته fake ها رو پاک کن و rebuiild و تست مجدد....

niloo17
پنج شنبه 04 تیر 1394, 08:32 صبح
[HttpPost]
public ActionResult SearchResult(int? id, Guid typs, int? price1, int? price2)
{
if (!ModelState.IsValid) return RedirectToAction("Index", "Home");
var model = _estate.Search(id, typs, price1, price2);
return Json(new JsonData
{
Script = MessageBox.Show("با موفقیت ثبت شد", MessageType.Success).Script,
Success = true,
});
}




مهم درست یا اشتباه بودن جوابش نیست.
مهم اینه که چرا اکشن رو نمی شناسه/
[JAVASCRIPT]
url: '@Url.Action("FindBill", "WeightControl")'
/JAVASCRIPT]

اینطوری هم آدرس دادم اما نشد

شما نباید اکشن را از نوع [HttpPost] بذارید.

r4hgozar
پنج شنبه 04 تیر 1394, 12:13 عصر
ببین اینطوری حل مییشه. رفرنس رو باز کن ببین چه dll های fake شدن و دوباره اونها رو اضافه کن.... والبته fake ها رو پاک کن و rebuiild و تست مجدد....

سلام داداش گلم.
fake نیست هیچ کدوم

r4hgozar
پنج شنبه 04 تیر 1394, 12:15 عصر
شما نباید اکشن را از نوع [HttpPost] بذارید.

این زیاد منظقی نیست که httppost نزارم.
اما تست کردم نشد.
ممنون

r4hgozar
پنج شنبه 04 تیر 1394, 17:14 عصر
الان مشکل اینکه پاس نمی داد رو درست کردم.
اما وقتی دستور اجرا می شه
صفحه میره به اکشن http://localhost:20209/Search/SearchResult
در حالی که همچنین چیزی وجود نداره.
یعنی ajax من در صفحه اجرا نمیشه



$.ajax({
type: "POST",
Url: @Url.Action("SearchResult","Search"),
data: data2,
dataType: "Json",
success: function (result) {
alert(result.success);
if (result.Succes) {
alert("salam");
}
eval(result.Script);
},



واقعا دیه کلافه شدم.
اصلا success نمیرسه. هیچی پاس داده نمیشه اینطرف.

hakim22
پنج شنبه 04 تیر 1394, 22:31 عصر
1- مطمئن شوید که Script مربوط به Ajax رو در صفحه ی مربوطه لینک داده باشید.
2- با استفاده از Fiddler یا FireBug و... اطلاعات رفت و برگشتی به سرور را در مرورگر عیب یابی کنید.