دسته بندی ها
19:00 1399/11/13

ارسال پارامتر از View به اکشن متد در کنترلر در Asp.net mvc core

مشخصات سوال کننده :
کاربر : Archangel     امتیاز کاربر : 4     رتبه کاربر : 113
دسته بندی : Asp.net Core Asp.net Mvc

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 5605
1 نظر
mohammad-i : روی مرورگر inspect element بگیر ببین اصلا @item.Id به درستی مقدار میگیره؟

امتیاز کاربر : 260   رتبه کاربر : 7   تاریخ ثبت : 09:47 1399/11/20
هوش مصنوعی

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

به نظر می رسد که مشکل شما مربوط به نحوه ارسال درخواست به کنترلر باشد. در ASP.NET Core MVC، زمانی که شما از یک لینک برای هدایت به متد اکشن استفاده می کنید، اگر لینکتان به درستی پیکربندی نشده باشد، ممکن است که مقادیر پارامترهای ارایه شده به کنترلر نادیده گرفته شوند یا تغییر کنند.

لینک زیر ممکن است به شما کمک کند تا پارامترها را به درستی ارسال کنید:


 @item.Title 

با استفاده از جایگاه `@Url.Action()`، اطمینان حاصل می کنید که URL صحیح شامل پارامتر `Id` به درستی ایجاد می شود و این مشکل را رفع خواهد کرد.

همچنین، اطمینان حاصل کنید که هیچ ریدایرکت یا فرایند دیگری در مسیر درخواست وجود ندارد که بتواند باعث تغییر مقادیر پارامتر شود.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 22:40 1399/11/13

دستوری که شما برای ارسال اطلاعات به سمت کنترلر نوشتید این هست :

<a href="~/product/Detail/@item.Id"> @item.Title </a>

به نظرم بهتره از TagHelper ها استفاده کنید. چون شما دارید از Asp.net Core استفاده می کنید و امکانات خوبی در این رابطه داره. می تونید به صورت زیر بنویسید دستور خودتون رو 

<a asp-controller="Product" asp-action="Detail" asp-route-Id="@item.Id">@item.Title</a>

 

اگر هم نمی خواید از TagHelper ها استفاده کنید بهتره با توجه به Routing تعریف شده در کلاس startup.cs عمل کنید. یعنی به این شکل

<a href="~/product/Detail?Id=@item.Id"> @item.Title </a>

 

به این پاسخ امتیاز بدهید    0
امتیاز: 1635 رتبه: 2
3 نظر
Archangel : ممنون ولی فکر نکنم مشکل از این باشه. حتی تمام کد های ایندکس رو کامنت کردم و دستی url رو وارد کردم ولی بازم همین ارور رو میداد. این سایت رو دارم همزمان با اموزشی که میبینم میسازم و تمام مراحل آموزش رو طی کردم ولی بازم همون ارور رو میده. حتی برای اطمیان سورس اموزش رو کپی پیست کردم ولی بازم ارور میده. اگه بخواید میتونم فیلم هم بگیرم.

امتیاز کاربر : 4   رتبه کاربر : 113   تاریخ ثبت : 11:19 1399/11/13
fateme : خب اروری که میده چی هست؟ همه کدها رو قرار دادید ولی به خطا اشاره ای نکردید.

امتیاز کاربر : 1635   رتبه کاربر : 2   تاریخ ثبت : 00:38 1399/11/14
Archangel : توی سرویس GetProductDetailForSite پروداکت رو 0 میفرسته و exception ایجاد میکنه.

امتیاز کاربر : 4   رتبه کاربر : 113   تاریخ ثبت : 11:57 1399/11/14
ادامه نظرات ...
پاسخ دهنده : Archangel 17:34 1399/12/21

مشکل از Layout بود. من تجربه frontend ندارم و نمیدونم چجوری همچین اتفاقی می‌افتاد ولی layout رو یه بار دیگه ساختم و مشکل درست شد.

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