با سلام
استاد چرا به محض اینکه دستور await
@await Component.InvokeAsync("ProductGroupsComponent")
اضاقه میکنم دیگه پیج رو نمیاره و میگه این کامپوننت ProductGroupsComponent رو نتونستم پیدا کنم؟
و خطا رو ارحاع به همون خط کد میده
در حالیکه هست
سرچ که کردم یه سری کدها رو کفته اضافه کن
گفتم از شما بپرسم اول
با این خطا توی برنامه:
wait'%20operator%20to%20await%20non-blocking%20API%20calls,%20or%20'await%/Volumes/E/MyEshop/My This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread. (CS1998) (MyEshop).Run(...)'%20to%20do%20CPU-bound%20work%20on%20a%20background%20thread.%20(CS1998)%20(MyEshop)
خطای تمایش:
An unhandled exception occurred while processing the request.
InvalidOperationException: Could not find an 'Invoke' or 'InvokeAsync' method for the view component 'MyEshop.Components.ProductGroupsComponent'.
Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorProvider.FindMethod(Type componentType)
Stack Query Cookies Headers Routing
InvalidOperationException: Could not find an 'Invoke' or 'InvokeAsync' method for the view component 'MyEshop.Components.ProductGroupsComponent'.
Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorProvider.FindMethod(Type componentType)
Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorProvider.CreateDescriptor(TypeInfo typeInfo)
System.Linq.Enumerable+SelectListIterator<TSource, TResult>.ToArray()
System.Linq.Enumerable.ToArray<TSource>(IEnumerable<TSource> source)
Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorCollectionProvider.GetViewComponents()
Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorCollectionProvider.get_ViewComponents()
Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentSelector.SelectComponent(string componentName)
Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentHelper.InvokeAsync(string name, object arguments)
Microsoft.AspNetCore.Mvc.Rendering.ViewComponentHelperExtensions.InvokeAsync(IViewComponentHelper helper, string name)
AspNetCore.Views_Shared__Layout.<ExecuteAsync>b__25_1() in _Layout.cshtml
+
@await Component.InvokeAsync("ProductGroupsComponent")
سلام
باید متذد async باشه
سرچ کنید asyn in dotnet
بله توی داکیومنت اصلی هم دیدم گفته
async استفاده کردی بعد برای await
با نام کامپوننت بیار
دقیقا همین کاری که شما گفتید
اما اینکارو میکنم میگه جرا این کامپوننت رو نتونتم پیدا کنم!!!
@await Component.InvokeAsync("Name of view component", {Anonymous Type Containing Parameters})
متن خطا رو سرچ کنید
تاحالا چنین مشکلی نداشتم
من همیشه بعد از کلی سرچ کردن اکر به جواب نرسم
سوالم رو اینجا مطرح میکنم
ولی چشم باز سرچ میکنم
نحوه نشتن نام رو رو چک کنید شاید اشتباهی تایپی داره یا شاید public نیست
کد کامپوننت رو قرار دهید
همیشه اولین کار نام رو دبل چک میکنم
حتی بعد با کد شما چک میکنم
بعد سرچ فراوان در گوگل :دی
جواب نرسم اینجا مطرح میکنم :)
public class ProductGroupsComponent : ViewComponent
{
private MyEshopContext _context;
public ProductGroupsComponent(MyEshopContext context)
{
_context = context;
}
public async Task<IViewComponentResult> InVokeAsync()
{
return View(_context.Categories);
}
@await Component.InvokeAsync("ProductGroupsComponent")
InVokeAsync ؟؟؟
چرا V بزرگه ؟
زبان سی شارپ case sensitive هست دوست من و به حروف کوچک و بزرگ حساسه
امیدوارم از این باشه
نبود :(
موقع بیلد warning میده:
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work . (CS1998)
استاد درست شد
گویا اشکال از همون v بزرگ بود !!!
خطا داد دفعه اول
که منو بی دقتی کردم همون خطایی بود که مال شما هم داد توی دیفالت میکرده
بعد مسیر رو دادم توی return view.
درست شد. :)
استاد فقط من یه چیزی رو متوجه نشدم
میدونم توی سی شارپ به حروف کوچیک بزرگ حساسه
ولی الان مگه. InvokeAsync. اسم این تابع نیست؟ خوب این اسم رو دادیم نمیشه ؟
یا این جز فرمت دستور await هست و کلمه رزرو شده به حساب می اد؟
@await Component.InvokeAsync("ProductGroupsComponent")
سوال دو:
توی قسمتی که dropDown اضافه کردید برای اوردن اسم گروهها با استفاده از partial:
توی اون قسمت که میخواهیم اسم رو بخونه از db:
<a class="dropdown-item" href="/Group/@item.Id/@item.Name">
اینجاشو متوجه نشدم چرا از /group?