簡體   English   中英

asp-for 不適用於指定的 ViewComponent 位置

[英]asp-for is not working with specified ViewComponent locations

我在ViewComponentInvoke()方法中返回一個文件夾位置,以繞過建議的文件夾位置(以及當您嘗試更改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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM