asp.net MVC中的RenderSection和EditorForModel

时间:2012-05-30 05:27:33

标签: asp.net-mvc-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>
}
...
由于EditorForModel,

@section Script{...}在Product.cshtml中不起作用。怎么办?

1 个答案:

答案 0 :(得分:4)

章节仅适用于视图,不适用于局部视图。编辑器模板是一种特殊的部分模板。无论如何将javascript放入partial中是不好的做法,因此我只需在Edit.cshtml视图中声明该部分。

但是如果你非常坚持将你的脚本放在标记的中间,由于Razor不支持部分中的部分,你可以实现custom helpers来实现它。