ASP.NET Core 视图组件莫明其妙的错误

ASP.NET Core MVC项目的首页使用了视图组件(ViewComplonent)来呈现菜单

<vc:menu id="@roleId"></vc:menu>

项目正常运行大半年了,一直没有问题。

今天更新时出现了一个莫明其妙的问题,在部署服务器上,菜单无法显示。本地调试却没有任何问题。

具体现象就是在客户的服务器和公司内用于测试的服务器上,打开包含视图组件的页面,应该显示菜单的地方一片空白。但在VS中调试时,却又一切正常。

对比本地调试和服务器的页面,发现本地调试的页面中,<vc:menu id="@roleId"></vc:menu>被生成的HTML代码替换,这个是正确的,ASP.NET的标签,编译后就会被相应的HTML标签替换掉。而服务器的页面,<vc:menu id="@roleId"></vc:menu>标签仍然存在,也就是服务器上的ASP.NET Core没有把它识别为视图组件标签,没有进行编译,导致视图组件无法正常显示。

虽然找到原因,但不知道如何解决,这问题实在太奇怪了。客户服务器和测试服务器出现同样情况,可以排除服务器问题。本地调试没问题,可以排除代码问题,实在是头大。

最后查看微软文档,发现可以使用代码的方式调用组件视图

@await Component.InvokeAsync("Menu", new {id=roleId})

以上代码和<vc:menu id="@roleId"></vc:menu>标签的作用一样,问题得以解决。但问题原因仍然是个谜……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值