简单的MVC Razor呈现视图问题



我正在用Razor学习MVC,有一个简单的问题(我想)。我在视图中显示模型的内容时遇到问题,不确定原因。

我的视图是一个.cs.html页面。我正在向它传递一个IEnumerable 类型的模型

我无法在下面的视图中运行"foreach"语句。有趣的<%字符在VisualStudio中不是黄色的,所以我想我可能错过了一些东西。有什么想法吗?这是我的视图代码。。。

@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);
    }

提前谢谢你,我已经试着解决这个问题有一段时间了,但没有成功。

仔细学习Razor语法——Razor不使用蜜蜂蜇伤(<%)。试试这个:

@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>   
}

更改此项:

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

到此:

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

aspx中的预处理器指令不再使用,现在使用了@。查看Scott Gu的这篇文章,它解释了Razor View引擎语法的使用。

最新更新