简单的MVC Razor渲染视图问题

时间:2012-02-08 15:45:14

标签: asp.net-mvc razor

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

我的观点是.cshtml页面。 我正在将一个模型传递给IEnumerable类型

我无法得到#fore;'语句在下面的视图中运行。有趣的是<%字符在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);
    }

提前谢谢你,我一直试图解决这个问题,但没有运气。

2 个答案:

答案 0 :(得分:0)

刷上Razor语法 - Razor不使用蜜蜂蜇(&lt;%)。试试这个:

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

答案 1 :(得分: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引擎语法。