如何将JSON或JavaScript对象文字渲染为视图的一部分?

时间:2012-04-18 13:39:12

标签: asp.net-mvc asp.net-mvc-3 razor

我有许多小部件可以使用JSON或JavaScript对象文字作为其数据源,并且这些数据很少更改,如下面的kendo菜单。这个菜单是硬编码的,我更喜欢它保持这种方式 - 我不希望我的应用程序太过繁琐只是填充菜单等 - 但我想从我的Razor视图中发出那些硬代码。

$("#view-menu").kendoMenu({
    dataSource: [
            {
                text: 'Save',
                url: '#',
                imageUrl: '@Url.Content("~/Content/Images/Save.png")'
            },
            {
                text: 'Cancel',
                url: '@Url.Action("Edit", "Employee", new {id = Model.EmployeeId})',
                imageUrl: '@Url.Content("~/Content/Images/Cancel.png")'
            }
    ]
});

$(".k-menu a.k-link[href=#]").click(function (e) {
    e.preventDefault();
    $(this).parents('form').first().submit();
});

我是否可以使用现有的助手,例如渲染一个配置此菜单的KendoMenuConfig对象?我希望这样的东西取代上面的内容:

$("#view-menu").kendoMenu({
    @Html.KendoMenuConfig(blah blah))
});

1 个答案:

答案 0 :(得分:0)

不写自己的html助手

@Html.KendoMenuConfig(blah blah))

返回与您的配置对应的字符串,它将起作用,您实际上是在正确的方式。

public static String KendoMenuConfig(this HtmlHelper html,.....)

在命名空间部分的/View/Web.config中包含包含此扩展的类。