asp.net mvc 4:RenderBody()正在写模型名称到页面

Son*_*oul 0 asp.net-mvc razor

我正在工作/调整asp.net mvc 4的默认安装..添加了一些视图..

当我尝试将模型传递给视图时,该模型(名称和名称空间)就会写到页面上。

@Model Blah.Web.UI.Models.DirectoryModel
@{
    ViewBag.Title = "Directory";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
Run Code Online (Sandbox Code Playgroud)

当我查看我的页面时,我看到

Blah.Web.UI.Models.DirectoryModel Blah.Web.UI.Models.DirectoryModel

在页面顶部写两次。

我的控制器只是初始化模型并将其传递到视图中。

我也注意到这发生在@RenderBody()中,称为形式_layout。

即使我注释掉了我视图中的所有代码(接受上面的声明),我仍然看到此字符串被写出。

nem*_*esv 5

更改

@Model Blah.Web.UI.Models.DirectoryModel
Run Code Online (Sandbox Code Playgroud)

@model Blah.Web.UI.Models.DirectoryModel
Run Code Online (Sandbox Code Playgroud)

@model小写的指令m告诉razor模型的类型是什么。

另一方面,@Model对于大写字母,M只需调用ToString视图的Model属性并将字符串写入响应中。

这就是为什么

 @Model Blah.Web.UI.Models.DirectoryModel
Run Code Online (Sandbox Code Playgroud)

结果: Blah.Web.UI.Models.DirectoryModel Blah.Web.UI.Models.DirectoryModel

首先,它写入了ToStringModel和行的其余部分Blah.Web.UI.Models.DirectoryModel为纯文本。