ViewComponent 标签助手不工作
ViewComponent tag helpers not working
我已经将我的 asp.net 核心 Web 应用程序从 1.0.1 更新到 1.1.0,但是我的视图组件的标签助手不工作:
<vc:login-form />
它输出标签。它使用旧语法工作:@await Component.InvokeAsync(typeof(LoginFormViewComponent))
我错过了什么?
package.json:
{
"title": "DevPortal.Web",
"version": "0.1.0",
"language": "",
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
},
"Microsoft.AspNetCore.StaticFiles": "1.1.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
"Microsoft.AspNetCore.Mvc": "1.1.0",
"NuGet.CommandLine": "3.5.0",
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final"
},
"frameworks": {
"netcoreapp1.1": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"scripts": {
"prepublish": [ "bower install"],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
},
"userSecretsId": "aspnet-DevPortal.Web-20161230052130"
}
我已将此添加到 _ViewImports.cshtml:
@addTagHelper "*, DevPortal"
我的程序集名称是 DevPortal.dll
[ViewComponent(Name ="LoginForm")]
public class LoginFormViewComponent: ViewComponent
{
public IViewComponentResult Invoke(LoginFormViewModel model = null)
{
if (model == null) model = new LoginFormViewModel();
return View(model);
}
}
老问题,但有同样的问题。
根据 this link,,似乎 _ViewImports
或 _GlobalImports
不会自动应用于 ViewComponents
。尝试在 ViewComponent
视图中添加 @addTagHelper 行。
在这种情况下,问题还在于具有默认值的参数。我们在 github 上跟踪了这个问题,但目前 ViewComponents 不能有具有默认值的参数
这应该有效:
<vc:login-form model="null" />
我有一个 ASP.NET Core 5.0 Web 应用程序。我遇到了同样的问题,但我解决了这个问题。
例如:
如果我的项目名称是 MyProject
并且我的视图组件位于 Components
文件夹中,我将以下代码添加到 _ViewImport.cshtml
并且它对我有效
@addTagHelper *, MyProject
更多细节可以看这个视频:Kudvenkat - ASP NET Core view component tag helper
我已经将我的 asp.net 核心 Web 应用程序从 1.0.1 更新到 1.1.0,但是我的视图组件的标签助手不工作:
<vc:login-form />
它输出标签。它使用旧语法工作:@await Component.InvokeAsync(typeof(LoginFormViewComponent))
我错过了什么?
package.json:
{
"title": "DevPortal.Web",
"version": "0.1.0",
"language": "",
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
},
"Microsoft.AspNetCore.StaticFiles": "1.1.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
"Microsoft.AspNetCore.Mvc": "1.1.0",
"NuGet.CommandLine": "3.5.0",
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final"
},
"frameworks": {
"netcoreapp1.1": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"scripts": {
"prepublish": [ "bower install"],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
},
"userSecretsId": "aspnet-DevPortal.Web-20161230052130"
}
我已将此添加到 _ViewImports.cshtml:
@addTagHelper "*, DevPortal"
我的程序集名称是 DevPortal.dll
[ViewComponent(Name ="LoginForm")]
public class LoginFormViewComponent: ViewComponent
{
public IViewComponentResult Invoke(LoginFormViewModel model = null)
{
if (model == null) model = new LoginFormViewModel();
return View(model);
}
}
老问题,但有同样的问题。
根据 this link,,似乎 _ViewImports
或 _GlobalImports
不会自动应用于 ViewComponents
。尝试在 ViewComponent
视图中添加 @addTagHelper 行。
在这种情况下,问题还在于具有默认值的参数。我们在 github 上跟踪了这个问题,但目前 ViewComponents 不能有具有默认值的参数
这应该有效:
<vc:login-form model="null" />
我有一个 ASP.NET Core 5.0 Web 应用程序。我遇到了同样的问题,但我解决了这个问题。
例如:
如果我的项目名称是 MyProject
并且我的视图组件位于 Components
文件夹中,我将以下代码添加到 _ViewImport.cshtml
并且它对我有效
@addTagHelper *, MyProject
更多细节可以看这个视频:Kudvenkat - ASP NET Core view component tag helper