3

我是一个 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 规则的,但我只是想学习剃刀语法。有人可以帮我理解错误吗?谢谢。

4

4 回答 4

3

尝试添加空间:

<h1> @employee.Name </h1>

看看这个问题

于 2013-07-18T12:14:36.657 回答
3

复制了你的问题。

当您引用 View Model 以使您的 View 成为Strongly Type时,您在模型中提到如下

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

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

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

理解这一点很重要。基本上, MVC使用模型作为关键字来将视图引用为强类型,并且您为变量使用了相同的关键字。这是实际的问题

于 2013-07-19T07:25:18.487 回答
0

我找到了解决方案,但我不确定如何回答。我已经编辑了我的问题以反映确切的问题。一直以来,我都将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>
于 2013-07-18T15:33:30.697 回答
0

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

于 2013-07-18T15:33:37.197 回答