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

时间:2012-11-10 20:56:01

标签: asp.net-mvc razor

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

当我尝试将模型传递给我的视图时,该模型(名称和命名空间)将写入页面。

@Model Blah.Web.UI.Models.DirectoryModel
@{
    ViewBag.Title = "Directory";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

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

  

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

在页面顶部写了两次..

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

我也注意到这发生在@RenderBody()中,名为form _layout ..所以我假设它在我看来的某个地方完成..

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

1 个答案:

答案 0 :(得分:5)

更改

@Model Blah.Web.UI.Models.DirectoryModel

@model Blah.Web.UI.Models.DirectoryModel

小写@model的{​​{1}}指令告诉razor模型的类型。

另一方面,大写m的{​​{1}}只是在视图的@Model属性上调用M,并在响应中写入字符串。

这就是为什么

ToString

Ouptuts:Model

首先,它将 @Model Blah.Web.UI.Models.DirectoryModel 的{​​{1}}和行Blah.Web.UI.Models.DirectoryModel Blah.Web.UI.Models.DirectoryModel的其余部分写为纯文本。