[英]asp-for is not working with specified ViewComponent locations
我在ViewComponent
的Invoke()
方法中返回一個文件夾位置,以繞過建議的文件夾位置(以及當您嘗試更改Components/ViewComponentName/ViewName.*
ViewLocationFormats.Add("/{0}.*")
在Startup
但是因為我正在這樣做,我視圖中的asp-for
標簽不再起作用。
一個簡單的例子:
我通過Get
on my people controller 訪問了Index
頁面
[HttpGet]
public IActionResult Index()
{
ViewModels.VMPersonSummary vm = new ViewModels.VMPersonSummary();
vm.Property = "HELLO";
return View(vm);
}
這會將ViewModel
傳遞給視圖:
@model People.ViewModels.VMPersonSummary
<div>
@await Component.InvokeAsync(nameof(People.ViewComponents.PeopleSummary.Search), Model)
</div>
Model 被很好地傳遞給ViewComponent
:
namespace People.ViewComponents.PeopleSummary
{
public class Search : ViewComponent
{
public IViewComponentResult Invoke(VMPersonSummary vm)
{
return View("~/ViewComponents/PeopleSummary/Search.cshtml", vm);
}
}
}
在View
(返回正常)上,以下工作:
<p>Value = @Model.Property</p>
但像這樣的事情:
<label asp-for="Property"></label>
<input asp-for="Property" class="form-control" />
都是空的,null,什么都沒有,不存在。
我擔心這是因為我沒有在啟動時設置ViewComponent
位置,但我不想這樣做,因為它被限制使用,至少在文件路徑中的某個地方, Components/ViewComponentName/
我想要我的特定ViewComponents/SpecifiedFolder/ViewName.*
關於如何連接asp-for
標簽的任何想法?
好的,看來如果您已將 ViewComponent 視圖移動到不推薦的位置,那么您需要添加
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
到文件的頂部
fs
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.