UmbracoTemplatePage和强类型视图不能一起工作

时间:2014-08-06 11:16:37

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-partialview umbraco7 strongly-typed-view

我不太明白为什么我不能在一个视图中同时使用强类型视图和umbraco模板。

我有一个导入Excel数据的脚本。我的网站是在umbraco 7。 我使用Import.cshtml视图调用upload.cshtml partial

@inherits UmbracoTemplatePage
@{
    Layout = "~/Views/Master.cshtml";

    var locations = new List<SelectListItem>
        {
        new SelectListItem {Selected = false, Text = "location 1", Value = ""},
        };

    var fileTypes = new List<SelectListItem>
        {
        new SelectListItem {Selected = false, Text = "type 1", Value = ""},
        };
}

<div id="page-bgtop">
    <div class="post">
        <h1>@Umbraco.Field("title")</h1>
        <div class="entry">
            @Html.Partial("Upload", new MvcImport.Models.ImportModel { FileTypes = fileTypes, Locations = locations })
        </div>
    </div>

    <div class="clear"> </div>
</div>

Upload.cshtml partial在ImportController中完成工作。数据很好地插入到

List<CourseImport> courses = List<CourseImport>

我现在要做的就是在视图或局部视图中显示它们。 我尝试了几件事:


案例1

1

在ImportController中的

我做:

return View("CoursesList", courses);

2

该视图包含一个显示行并以

开头的表
@inherits UmbracoTemplatePage
@model IEnumerable<MvcImport.Models.CourseImport>
@{
    Layout = "~/Views/Master.cshtml";
}

3

在这种情况下,我得到:

Parser Error Message: The 'inherits' keyword is not allowed when a 'model' keyword is used.

案例2

1

在案例1中为1.

2

视图以(所以没有@inherits UmbracoTemplatePage)

开头
@model IEnumerable<MvcImport.Models.CourseImport>
@{
    Layout = "~/Views/Master.cshtml";
}

3

我明白了:

The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[MvcImport.Models.CourseImport]', but this dictionary requires a model item of type 'Umbraco.Web.Models.RenderModel'.

案例3

1

在ImportController中我做

return PartialView("CoursesList", courses);

2

我现在使用局部视图,它与上述观点类似,也是强类型的,例如。

@model IEnumerable<MvcImport.Models.CourseImport>

3

在这种情况下,数据显示但没有我的umbraco模板形状,没有样式等。

如果在部分视图中我包含

@{
    Layout = "~/Views/Master.cshtml";
}

我得到与案例2相同的错误


将起始指令更改为

@model UmbracoViewPage<MvcImport.Models.CourseImport>

不起作用,因为模型必须是可枚举的


有人可以告诉我该怎么做吗?我想一定有一个解决方案,但我对MVC很新,所以我不知道事情是如何运作的。

感谢。

1 个答案:

答案 0 :(得分:0)