3 回答

TA貢獻1817條經驗 獲得超6個贊
將 Razor 頁面加載為部分視圖似乎是不可能的,請參閱此處。Razor 頁面不能用作View Components的替代品。按照以下步驟創建一個PartialDelegatesViewComponent,它可以做你想做的事情。
1.創建ViewComponens文件夾并在文件夾中添加PartialDelegates.cs類
public class PartialDelegates:ViewComponent
{
public IViewComponentResult Invoke()
{
List<string> Avengers = new List<string>();
Avengers.AddRange(new[] { "Spiderman", "Iron Man", "Dr. Stange", "The Hulk" });
return View(Avengers);
}
}
2.Default.cshtml添加到路徑 /Views/Shared/Components/PartialDelegates/Default.cshtml(如果文件夾不存在則創建)
@model List<string>
<h1>Default</h1>
<partial name="_PartialDelegatesView" model="Model" />
3.在你的 Create.cshtml 中,調用視圖組件
@await Component.InvokeAsync("PartialDelegates")

TA貢獻1798條經驗 獲得超3個贊
將 Razor 頁面加載為部分視圖似乎是不可能的,請參閱此處。Razor 頁面不能用作View Components的替代品。按照以下步驟創建一個PartialDelegatesViewComponent,它可以做你想做的事情。
1.創建ViewComponens文件夾并在文件夾中添加PartialDelegates.cs類
public class PartialDelegates:ViewComponent
{
public IViewComponentResult Invoke()
{
List<string> Avengers = new List<string>();
Avengers.AddRange(new[] { "Spiderman", "Iron Man", "Dr. Stange", "The Hulk" });
return View(Avengers);
}
}
2.Default.cshtml添加到路徑 /Views/Shared/Components/PartialDelegates/Default.cshtml(如果文件夾不存在則創建)
@model List<string>
<h1>Default</h1>
<partial name="_PartialDelegatesView" model="Model" />
3.在你的 Create.cshtml 中,調用視圖組件
@await Component.InvokeAsync("PartialDelegates")

TA貢獻1998條經驗 獲得超6個贊
您需要刪除@page
指令_PartialDelegates.cshtml
以使局部視圖正常工作。但問題是_PartialDelegatesModel
OnGet
永遠不會調用方法,因此Avengers
不會實例化列表。
似乎不可能將這樣的剃須刀頁面用作局部視圖,只有常規的剃須刀視圖適合此目的。如果您需要在呈現頁面之前實例化一些值,那么根據文檔(“重要”部分)
如果您需要執行代碼,請使用視圖組件而不是局部視圖。
- 3 回答
- 0 關注
- 110 瀏覽
添加回答
舉報