有一些類似的問題,但似乎都不是最近的,微軟的檔案沒有列出任何特殊步驟:https ://docs.microsoft.com/en-us/aspnet/core/mvc/views/view -components?view=aspnetcore-6.0
@await Component.InvokeAsync("TopBooks"...作品沒有問題,但不<vc:top-books />渲染。我添加@addTagHelper *, WebApplication1到頂部,Index.cshtml但 TagHelper 不起作用。如果您檢查源代碼,它只是按原樣寫出。
我也嘗試添加@addTagHelper *, WebApplication1to_ViewImports.cshtml而不是在行為上沒有區別。
我在 Visual Studio 2022 中創建了一個基本的 ASP.NET Core Razor Pages .NET 6 應用程式。File > New > ASP.NET Core Web App > Next until completed
然后我創建了一個非常簡單的ViewComponent模型:
public class TopBooksViewComponent : ViewComponent {
public IViewComponentResult Invoke(MyBook book) {
return View(book);
}
}
另存為Components/TopBooksViewComponent.cs
public class MyBook {
public string Author { get; set; }
public string Title { get; set; }
}
另存為Models/MyBook.cs
接下來,我創建了視圖:
@model WebApplication1.Models.MyBook
<h1>Top Books view component</h1>
<p>@Model.Title by @Model.Author</p>
另存為Pages/Shared/Components/TopBooks/Default.cshtml
然后,為了試用它,我打開Pages/Index.cshtml并修改為:
@page
@using WebApplication1.Components
@using WebApplication1.Models
@model IndexModel
@addTagHelper *, WebApplication1
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
@await Component.InvokeAsync("TopBooks", new MyBook() {Author = "John Smith", Title = "How to do stuff!"})
<vc:top-books Author="Shepard" Title="The Reapers are coming!"></vc:top-books>
</div>
正如我所說,@await Component.InvokeAsync作業沒有問題,但 TagHelper 什么也不做。據我所知,不需要任何其他特殊設定,歸結為@addTagHelper *, WebApplication1無法正常作業。但是,我不確定我還能把它改成什么。WebApplication1也是我的專案的名稱。
uj5u.com熱心網友回復:
通過下面的 taghelper 傳遞的 2 個string引數Author與 方法Title的簽名不匹配Invoke。
<vc:top-books Author="Shepard" Title="The Reapers are coming!"></vc:top-books>
該Invoke方法需要一個MyBook實體。
public IViewComponentResult Invoke(MyBook book)
taghelper 應該傳遞一個MyBook如下所示的物件。
<vc:top-books book="@(new MyBook { Author = "Shepard", Title = "The Reapers are coming!" })"></vc:top-books>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/468052.html
下一篇:ASP.NETCore錯誤:System.InvalidOperationException:嘗試激活時無法決議服務型別
