我目前正在研究MVC-5 ASP.NET并遵循本教程:https://www.youtube.com/watch?v=Fu9v2MIDlTA
我已成功创建了我的视图和控制器,因此我的HeLLO WORLD显示。现在我正在本教程的第2部分,其中我将数据从控制器传递给View。
以下是代码:
家庭控制器:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace WebApplication2.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
return View();
}
public ActionResult ShowHome()
{
ViewData["CurrentTime"] = DateTime.Now.ToString();
return View("Home");
}
}
}
查看:
@{
ViewBag.Title = "Home";
}
<html>
<head>
<title>
WELCOME TO MVC 5
</title>
<body>
<div>
This is my homepage! <br/>
TIME: <%= ViewData["CurrentTime"]%>
</div>
</body>
</head>
</html>
问题是:为什么当我输入部件时: &lt; %%&gt ;,我的ide不读它?我的意思是,教程中的发言人正在使用我认为Visual Studio 2013 Ultimate。当他键入&lt;%&gt;%时,就会有智能感知。
当我输入
时,我使用Visual Studio 2013 Express for WEBViewData["CurrentTime"] = DateTime.Now.ToString();
IDE无法识别它并将其打印为字符串。 :(
答案 0 :(得分:1)
Glenn你们对如何在aspx页面中注释的代码块以及它们在Razor视图引擎中的使用方式感到困惑。
您可以在视图顶部看到Razor正在运行:
@{
ViewBag.Title = "Home";
}
那就是你怎么做的。花括号是可选的,如果你使用单个表达式,那么在你的情况下你可以写
<div>
This is my homepage! <br/>
TIME: @ViewData["CurrentTime"]
</div>
Scott Gu写了一篇关于两个系统之间差异的文章:http://weblogs.asp.net/scottgu/introducing-razor
根据经验:如果是.aspx文件,请使用<% %>
。如果是.cshtml或.vbhtml,请使用@{ }