标记'h1'未关闭

时间:2013-07-18 11:42:31

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我是Winforms人并且学习ASP.Net。从教程中学习使用Razor的MVC 4。这是我的代码。

@using MVC_Employee.Models;
@{
    var model = new Employee()
        {
            Name = "Rapsy Tree",
            Department = "Development",
            JoinTime = DateTime.Now,
        };
}

<div>
    <h1>@model.Name</h1> // Getting error in typing Name and also VS intellisense not populating this.
</div>

错误

编译时错误:Tag 'h1' not closed

运行时错误:

描述:编译服务此请求所需的资源时发生错误。请查看以下特定错误详细信息并相应地修改源代码。

编译器错误消息:CS1031:预期类型

 Source Error:

Line 38:      Line 39:      Line 40:     public class
_Page_Views_employee_employee_cshtml : System.Web.Mvc.WebViewPage<.Title</h1>> { Line 41:          Line 42:
#line hidden

我知道这是违反MVC规则使用Model in View但我只是想学习剃刀语法。有人可以帮我理解错误吗?感谢。

4 个答案:

答案 0 :(得分:3)

尝试添加空间:

<h1> @employee.Name </h1>

<强> Take a look at this question

答案 1 :(得分:3)

复制您的问题。

当您引用视图模型以使视图为强类型时,您在模型中提到了如下

@model Practise.Areas.MyPractise.Models.Dropdown
@{
    var mod = new Practise.Areas.MyPractise.Models.Dropdown();
}

<div>
    <h1> @mod.YourPropertyName </h1> populating this.
</div>

如果您注意上面的代码,我声明了一个名为mod的变量而不是模型

这一点很重要。基本上 MVC 使用model作为关键字来引用View as Strongly类型,并为变量使用相同的关键字。这是实际问题

答案 2 :(得分:0)

我找到了解决方案&amp;我不知道如何回答这个问题。我编辑了我的问题以反映确切的问题。这段时间我一直使用model作为我的变量名。我将其更改为employee,一切正常。愚蠢但真实,也无法理解它。

这是最终的工作代码

@using MVC_Employee.Models;
@{
    var employee = new Employee()
        {
            Name = "Rapsy Tree",
            Department = "Development",
            JoinTime = DateTime.Now,
        };
}

<div>
    <h1>@employee.Name</h1> // Getting error in typing Name and also VS intellisense not populating this.
</div>

答案 3 :(得分:0)

尝试删除@using行中的分号。