如何在csHTML中编写服务器端代码

时间:2014-08-30 13:15:50

标签: asp.net-mvc razor kendo-ui kendo-asp.net-mvc

我想编写一些服务器端代码来显示存储在csHtml页面中页面的View Data中的数据。我做了一些研究,但无法找到解决方案。代码输出为enter image description here

  @(Html.Kendo().TabStrip()
                    .Name("Logins")
                    .SelectedIndex(0)
                    .Animation(animation => animation.Open(open => open.Fade(FadeDirection.In)))
                    .Items(items =>
                    {


                        items.Add().Text("Contact Information").Content(
                            "<div class='employee-details'>" +
                                "<ul>" +
                                "<%>for(int i=0;i<8;i++)"+
                        "{<%>"+
                                    "<li><label>LoginID:</label>"+viewDataServer[i].LoginID.ToString()+"</li>" +
                                    "<li><label>ServerID:</label>" + viewDataServer[i].ServerID.ToString() + "</li>" +
                                    "<li><label>UserID:</label>" + viewDataServer[i].UserID.ToString() + "</li>" +
                                    "<li><label>Password:</label>" + viewDataServer[i].passwd.ToString() + "</li>" +
                                "<%>}<%>"+
                                "</ul>" +
                            "</div>"

                          );      

                    })
                .ToClientTemplate())

1 个答案:

答案 0 :(得分:1)

我认为您正在查看Telerik tabstrip demo site上错误的视图引擎页面 - 如果您使用的是Razor视图引擎,则需要查看“index.cshtml”而不是“index.aspx”。 / p>

我认为你的案例中的正确语法是 -

@(Html.Kendo().TabStrip()
                    .Name("Logins")
                    .SelectedIndex(0)
                    .Animation(animation => animation.Open(open => open.Fade(FadeDirection.In)))
                    .Items(items =>
                    {
                        items.Add().Text("Contact Information").Content(@<div class='employee-details'>
                                <ul>
                                @for(var i=0; i<8; i++)
                                {
                                    <li><label>LoginID:</label>@viewDataServer[i].LoginID.ToString()</li>
                                    <li><label>ServerID:</label>@viewDataServer[i].ServerID.ToString()</li>
                                    <li><label>UserID:</label>@viewDataServer[i].UserID.ToString()</li>
                                    <li><label>Password:</label>@viewDataServer[i].passwd.ToString()</li>
                                }
                                </ul>
                            </div>);
                    })
                .ToClientTemplate())

但是强烈鼓励您不要使用ViewData以这种方式将数据从控制器分页到视图。这正是视图模型的目的,它将是强类型的。如果由于某种原因使用视图模型不实用,我建议你至少考虑ViewBag - 这是一个动态类型 - 这意味着你可以传递一个强类型类的IEnumerable(或List),也许是你的Contact对象,简单地使用像

这样的东西来枚举它们
@foreach (var contact in ViewBag.Contacts) { ... }

理想绝对是将模型设置为List或IEnunerable,如 -

@model IEnumerable<Contact>

然后在您的视图中枚举如下 -

@foreach (var contact in Model) { ... }