PDA

View Full Version : سوال: مشکل در url.action در متد ایجکس



mohammad_kazem
چهارشنبه 18 دی 1392, 09:34 صبح
سلام به همگی.
توی صفحه و در قسمت جاوااسکریپت یک متغییر عمومی دارم که قراره توی متد $.Ajax استفاده بشه. به این شکل


var actionname = "";
S.Ajax({
.
.
.
url=@url.action(actionname, ....)
.
.
.

})

ولی میگه actionname در این متد تعریف نشده.
از دوستانی که راه حل رو میدونن خواهش میکنم راهنمایی کنن.
با تشکر فراوان

hakim22
چهارشنبه 18 دی 1392, 09:52 صبح
آرگومانهای ورودی به Razor نمیتوانند از جاوااسکریپت باشند. کد Url.Action در سرور اجرا میشه و کد جاوا اسکریپت در کلاینت و این دو هیچ درکی از هم ندارند.

آدرس رو دستی بسازید

mohammad_kazem
چهارشنبه 18 دی 1392, 11:22 صبح
آرگومانهای ورودی به Razor نمیتوانند از جاوااسکریپت باشند. کد Url.Action در سرور اجرا میشه و کد جاوا اسکریپت در کلاینت و این دو هیچ درکی از هم ندارند.

آدرس رو دستی بسازید
سلام.
اره درسته .شرمنده
. ولی الان یه مشکل دیگه دارم . میخوام area رو ادرس دهی بکنم ولی نمیشه
اینجوری
url: '/' + areaname + '/' + controllername + '/' + actionname
ولی ارور میده
هرجور عوضش کردم ارور میده. باید چیکار بکنم؟
خیلی ممنون

hakim22
چهارشنبه 18 دی 1392, 19:59 عصر
سوال شما واضح نیست ، متن کد رو کامل قرار بدید و شرح دهید خطا چیست

Cybersilent
چهارشنبه 18 دی 1392, 21:02 عصر
آدرس رو می تونید به همین صورت
@Url.action(actioname:"",controller:"")
هم وارد کنید..
_ اون رو بین '' قرار بدید.
_ هم نام اکشن و هم نام کنترلر رو ذکر کنید.

mohammad_kazem
چهارشنبه 18 دی 1392, 21:42 عصر
سوال شما واضح نیست ، متن کد رو کامل قرار بدید و شرح دهید خطا چیست
کد دقیقا مثل پست اولیه فقط url رو عوض کردم. به این صورت:


var actionname = "";
S.Ajax({
.
.
.
url: '/' + areaname + '/' + controllername + '/' + actionname
.
.
.

})

mohammad_kazem
چهارشنبه 18 دی 1392, 21:48 عصر
آدرس رو می تونید به همین صورت
@Url.action(actioname:"",controller:"")
هم وارد کنید..
_ اون رو بین '' قرار بدید.
_ هم نام اکشن و هم نام کنترلر رو ذکر کنید.

سلام دوست عزیز. مشکل تقریبا همونی بود که دوست عزیزمون hakim22 گفتن.
ولی اینکه چرا url ساختگی به شکل زیر رو قبول نمیکنه خیلی عجیبه. احتمالا ایراد کار در رجیستر شدن روتینگ هستش که من نتونستم درستش کنم.


url: '/' + areaname + '/' + controllername + '/' + actionname
ضمن اینکه این راه و همه این راه های شبیه به این رو امتحان کردم که جواب نمیده.
دوستانی که میتونن یه لطف بکنن و راه حل رو بگن
با تشکر فراوان

hakim22
چهارشنبه 18 دی 1392, 23:57 عصر
اول اینکه url رو در یک متغیر جدا تعریف کنید و بعد در این قسمت نسبت بدید.

دوم اینکه با استفاده از Developer Tools در Chrome مطمئن بشید که مقدار area و ... درست داده میشه و سوما url بدست اومده رو یکبار دستی وارد کنید ببینید وارد میشود یا نه .

اگر دستی میتوانید وارد یک route بشوید با جاوا اسکریپت هم باید بشود وارد شد و مشکلی وجود ندارد.