【问题标题】:How to convert to asp.net razor syntax from webforms the following?如何从以下 webforms 转换为 asp.net razor 语法?
【发布时间】:2012-02-11 14:17:26
【问题描述】:

如何将以下语句转换为 razor 语法? OnDocumentReady 方法接受Action 作为参数

<%
    Html.Telerik()
    .OnDocumentReady(() => {
        %>$("#searchbox").setAutocomplete('<%=Url.Action(MVC.Search.All())%>');<%
    }).Render();
%>

【问题讨论】:

    标签: asp.net-mvc razor webforms


    【解决方案1】:
    @(Html
        .Telerik()
        .ScriptRegistrar()
        .OnDocumentReady(
            @<text>
                $("#searchbox").setAutocomplete('@Url.Action(MVC.Search.All())');
             </text>
        )
    )
    

    另请注意,您错过了 ScriptRegistrar 电话。


    更新:

    如果您使用的是旧版本的 Telerik 扩展,您也可以试试这个:

    @{Html
        .Telerik()
        .ScriptRegistrar()
        .OnDocumentReady(
            @<text>
                $("#searchbox").setAutocomplete('@Url.Action(MVC.Search.All())');
             </text>
        )
        .Render();
    }
    

    【讨论】:

    • 是的,谢谢,我删除了一些行。使用这样的语法,它会在 之后显示错误“;预期”。当我插入“;”然后它抛出异常“CS1593: Delegate 'System.Func' does not take 0 arguments”
    • @Cheburek,我已经使用最新版本的 TelerikMvcExtensions(专为 ASP.NET MVC 3 设计)对此进行了测试,效果很好。如果您使用的是某些旧版本,则它可能与 Razor 不兼容。我已经用另一个示例更新了我的帖子,如果您使用的是旧版本(不确定它是否会工作),您可以尝试。您甚至应该删除 ScriptRegistrar() 电话,因为我在回答中添加了它,以为您忘记了它,但在旧版本中可能没有必要。
    • 也许问题出在较旧的 Telerik 版本上(我已经尝试过您的更新版本)。我有 Telerik 2011.2.712.340。也许我需要将其更新到最新版本,但项目很大,因此可能需要比预期更多的时间。当我完成时,我会告诉你它是否有效。谢谢。
    • @Cheburek,我更新的调用.Render(); 的示例不起作用吗?
    • CS1593吗?通常,假设 OnDocumentReady 将 Func&lt;object, object&gt; 作为参数,这应该可以工作。让我下载你的 Telerik 版本看看。
    【解决方案2】:

    下面是这两种语法的一个很好的比较: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2011-05-15
      • 2011-02-20
      • 2021-06-29
      相关资源
      最近更新 更多