【问题标题】:Why Does HTML.TextArea require an @ before it?为什么 HTML.TextArea 在它之前需要一个 @ ?
【发布时间】:2015-05-26 03:54:38
【问题描述】:

除非@在@Html之前,否则下面的内容似乎不起作用。这是为什么呢?

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

【问题讨论】:

  • 同,需要一个“=”,剃须刀需要一个“@”;没有“@”像,只调用方法,不写响应

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


【解决方案1】:

Html.TextArea(...) 返回一个 IHtmlString 和你想要的 HTML 代码。

如果您将其作为普通函数调用,您实际上不会对该返回值执行任何操作,因此不会发生任何事情。

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

顺便说一句,这不是一个语句,所以它不应该有分号。

【讨论】:

  • 如果我返回 Html.textArea(...) 而不是 @Html.TextArea... 会起作用吗?
  • Razor 模板无法返回任何内容
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2015-08-19
    • 1970-01-01
    • 2022-07-30
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    相关资源
    最近更新 更多