我想编写一些服务器端代码来显示存储在csHtml页面中页面的View Data中的数据。我做了一些研究,但无法找到解决方案。代码输出为
@(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())
答案 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) { ... }