Asp.net mvc 如何将此Razor代码从C#转换为VB.NET?

Asp.net mvc 如何将此Razor代码从C#转换为VB.NET?,asp.net-mvc,asp.net-mvc-4,razor,html-helper,Asp.net Mvc,Asp.net Mvc 4,Razor,Html Helper,by是一个很好的解决方案,可以将javascript放入部分视图中,但以后再进行渲染 我已经将HtmlHelper扩展转换为VB.NET,但我不知道如何将它们与Razor一起使用 @Html.Script(@<script></script>) 需要表达式。 @Html.Script(@:<script></script>) @Code Html.Script(@<script></script>) End C

by是一个很好的解决方案,可以将javascript放入部分视图中,但以后再进行渲染

我已经将HtmlHelper扩展转换为VB.NET,但我不知道如何将它们与Razor一起使用

@Html.Script(@<script></script>)

需要表达式。

@Html.Script(@:<script></script>)
@Code
    Html.Script(@<script></script>)
End Code

需要表达式。

请点击此处。我想到了一个解决办法,那就是使用剃须刀助手

@Html.Script(@:<script></script>)
@Code
    Html.Script(@<script></script>)
End Code
扩展

Namespace Helpers.Extensions

    Public Module HtmlHelperExtensions

        <Extension>
        Public Function Script(helper As HtmlHelper, result As HelperResult) As MvcHtmlString
            helper.ViewContext.HttpContext.Items("_script_" & Guid.NewGuid.ToString) = result
            Return MvcHtmlString.Empty
        End Function

        <Extension>
        Public Function RenderScripts(helper As HtmlHelper) As IHtmlString
            helper.ViewContext.Writer.WriteLine("<script type=""text/javascript"">")
            For Each key As Object In helper.ViewContext.HttpContext.Items.Keys
                If (key.ToString.StartsWith("_script_")) Then
                    Dim result As HelperResult =
                        DirectCast(helper.ViewContext.HttpContext.Items(key), HelperResult)
                    If result IsNot Nothing Then
                        helper.ViewContext.Writer.Write(result)
                    End If
                End If
            Next
            helper.ViewContext.Writer.WriteLine("</script>")
            Return MvcHtmlString.Empty
        End Function

    End Module

End Namespace
为什么不使用定义您希望在每个局部视图中呈现的JavaScript?感觉就像你在尝试复制这个已经存在的功能

设置要在布局中呈现脚本的位置。然后,您可以选择在每个局部视图中指定其他脚本

主视图/布局

@Html.RenderScripts
<body>
...
  <script type="text/javascript" src="@Url.Content("/Scripts/GlobalScript.js")">
  @RenderSection("Javascript", required: false)
</body>

...
@RenderSection(“Javascript”,必需:false)
局部视图

@section Javascript
{
  <script type="text/javascript" src="@Url.Content("/Scripts/ScriptRequiredByThisPartial.js")"></script>
}
@节Javascript
{
}

Partials不能使用sections,这就是本代码的目的。