3

这是我的 _Layout.cshtml

<html>
    <head>
        @RenderSection("Script", false)
    </head>
    ...
</html>

这是一个简单的编辑页面edit.cshtml

@model Shop.Models.Product
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@Html.EditorForModel()

这是 ~/Views/Shared/EditorTemplates/Product.cshtml

@model Shop.Models.Product
@section Script {
    <script>alert("hello");</script>
}
...

@section Script{...}由于 EditorForModel,它在 Product.cshtml 中不起作用。怎么办?

4

1 回答 1

4

部分仅在视图中起作用,而不在部分中起作用。编辑器模板是一种特殊的部分。无论如何将javascript放在部分中是不好的做法,所以我只需在Edit.cshtml视图中声明该部分。

但是,如果您非常坚持将脚本放在标记的中间,因为 Razor 不支持部分中的部分,您可以实现自定义帮助程序来实现这一点。

于 2012-05-30T06:04:47.257 回答