2012-02-08 45 views
2

我正在学习使用Razor的MVC,并有一个简单的问题(我认为)。我无法在视图中显示模型的内容,我不知道为什么。简单的MVC Razor渲染视图问题

我的看法是一个.cshtml页面。 我正在向它传递一个模型,它是IEnumerable类型的

我无法使'foreach'语句在下面的视图中运行。有趣的是,在Visual Studio中,<%的字符不会变成黄色,所以我想我可能错过了一些东西。有任何想法吗?这是我的看法代码...

@model IEnumerable<HERE_MVC.Models.CheckIn> 

@{ 
    ViewBag.Title = "Home"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<h2>Home - Main page</h2> 

<% foreach (var checkIn in Model.CheckIn){ %> 
    <li><%: checkIn.ID %></li> 
<% } %> 

我的控制器代码看起来像这样...

public ActionResult Home(string lat, string lon) 
    { 
     ViewBag.Message = "Welcome to HERE!"; 

     HEREModel m = new HEREModel(); 
     var v1 = m.GetEntitiesByLatLon(lat, lon); 
     return View(v1); 
    } 

预先感谢您,我一直在努力工作,这一点了一段时间,但没有运气。

回答

0

刷你的剃刀语法 - 剃刀不使用蜜蜂蜇(<%)。试试这个:

@model IEnumerable<HERE_MVC.Models.CheckIn> 

@{ 
    ViewBag.Title = "Home"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<h2>Home - Main page</h2> 

@foreach (var checkIn in Model.CheckIn) { 
    <li>@checkIn.ID</li> 
} 
0

更改此:

<% foreach (var checkIn in Model.CheckIn){ %> 
    <li><%: checkIn.ID %></li>  
<% } %> 

这样:

@foreach (var checkIn in Model.CheckIn) { 
    <li> @checkIn.ID </li>  
} 

从ASPX预处理器指令不再使用,现在使用的@。从Scott Gu检查这个article,它解释了Razor View引擎语法的使用。