为什么HTML.TextArea之前需要@?

除非@在@Html之前,否则以下内容似乎无效.这是为什么?

@{
 if (DescriptionIsFieldReadOnly) {
                            Html.TextArea("description-edit", Model.Requisition.ReqHdr.Description, new { @Readonly = "readonly" });
                        }
                        else {
                            Html.TextArea("description-edit", Model.Requisition.ReqHdr.Description);
                        } 
}

解决方法:

Html.TextArea(…)返回带有所需HTML代码的IHtmlString.

如果将其作为常规函数调用,则实际上不会对该返回值执行任何操作,因此什么也不会发生.

使用@会将其转换为Razor表达式,并将其值打印到页面上.

顺便说一句,这不是声明,因此它不应使用分号.

上一篇:Razor 是什么?


下一篇:.net5 core Razor 进阶之二:EF Core基本数据操作介绍(2个表关联)