在视图中显示ViewData

时间:2010-02-18 15:14:43

标签: asp.net-mvc

我需要的是在我的视图中的各种链接中显示Area_Name。我可以将Area_Name分配给变量,然后在视图中的每个链接中显示该变量,而不是每次重复下面的相同循环吗?

的ViewData

filterContext.Controller.ViewData["Categories"] = from m in _dataContext.Categories where m.Area_ID == SectionID select m;

查看页面

样式表

<%
foreach (var c in (IEnumerable<Categories>)ViewData["Categories"]) { %>
     <link href="../../Content/<%= c.Area_Name %>/Site.css" rel="stylesheet" type="text/css" />
<% } %>

图片

<% 
foreach (var c in (IEnumerable<Categories>)ViewData["Categories"]) { %>
 <img src="../../Content/images/<%= c.Area_Name %>/slide1.jpg" />
 <img src="../../Content/images/<%= c.Area_Name %>/slide2.jpg" />
 <img src="../../Content/images/<%= c.Area_Name %>/slide3.jpg" />
<% } %>

2 个答案:

答案 0 :(得分:0)

使用第二个for-each或for-loop?

像这样:

<% foreach (var c in (IEnumerable<Categories>)ViewData["Categories"]) { 
    for ( int i = 0 ; i < 100; i ++ )
    {
        %>
        <img src="../../Content/images/<%= c.Area_Name %>/slide<%= i %>.jpg" />
        <%
    }
<% } %>

虽然很难确切地知道你的意思..

答案 1 :(得分:0)

或许创建一个强类型的viewData 文件,其中包含您拥有的每个AreaName的属性。这样做的缺点是,当您添加一个新类别时,viewData类和视图将不会以与当前代码相同的方式获取这些更改。