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

时间:2015-05-26 03:54:38

标签: c# html asp.net-mvc razor

除非@在@Html之前,否则以下似乎不起作用。那是为什么?

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

2 个答案:

答案 0 :(得分:3)

Html.TextArea(...)会返回包含您想要的HTML代码的IHtmlString

如果你将它称为正常功能,你实际上并没有对该返回值做任何事情,所以没有任何反应。

使用@将其转换为Razor表达式,将其值打印到页面。

顺便说一下,这不是一个声明,所以它不应该有分号。

答案 1 :(得分:0)

使用@字符向页面添加代码。 @:序列表示后面的内容行应被视为内容块。

Html.TextArea返回一个字符串并使用razor视图引擎渲染它,你需要在开始时使用@,就像你问@ Html.TextArea

一样