PDA

View Full Version : جایگزین Html.Action در ASP.Net core



alirezaja1384
دوشنبه 04 فروردین 1399, 07:56 صبح
سلام من تازه core رو شروع کردم و به مشکلی برخوردم اونم اینه که Html.Action() دیگه وجود نداره اینطور که سرچ کردم یه چیز جدید به جاش اومده ولی خیلی نفهمیدم قضیش چیه و چجوری باید استفادش کنم:افسرده:

ممنون میشم راهنمایی کنید (فعلا فقط Partial میسازم بعد همونجا همه کارامو میکنم و با Html.Partial() ازش استفاده میکنم ولی یکم برام جالب نیست که مثلا Repository رو توی یه ویو نمونه سازی کنم و همچنین فکر کنم توی پرفورمنس هم اگه Partial ها زیاد بشه تاثیر داره)

r4hgozar
یک شنبه 10 فروردین 1399, 21:25 عصر
سلام.
من که سوالتون رو درست نفهمیدم
html.actiom نیست (البته میشه استفاده کرد)
اما asp-action هست.

https://docs.microsoft.com/en-us/aspnet/core/mvc/views/working-with-forms?view=aspnetcore-3.1

alirezaja1384
سه شنبه 12 فروردین 1399, 10:13 صبح
سلام قبلا در ASP.Net MVC متدی وجود داشت به نام Html.Action که با اون میتونستیم یه partial view رو فراخوانی کنیم
الان توی core به جای partial view از استفاده view component میشه و با Component.InvokeAsync فراخوانی میشه

در مورد asp-action که اون یه چیز جداست

ممنون که جواب دادید ولی من دیشب فهمیدم باید چیکار کنم

LostOfMind
شنبه 03 خرداد 1399, 18:43 عصر
سلام دوست من
میتونی به جاش از ViewComponent استفاده کنی
یه partialview درست کن با هر مدلی که خواستی بهش بده
بعد یه ViewComponent ایجاد کن و کد زیر رو بنویس


public class CategoriesComponent : ViewComponent
{
private readonly IUnitOfWork db;
public CategoriesComponent(IUnitOfWork db)
{
this.db = db;
}
public async Task<IViewComponentResult> InvokeAsync()
{
return View("~/Views/Home/Categories.cshtml", db.Categories.GetAsync());
}
}


و در ویو هرجایی که خواستی به صورت زیر فراخوانی کن


<div>
@await Component.InvokeAsync("CategoriesComponent")
</div>