语法错误,'>'预计在Razor

时间:2016-01-08 16:11:12

标签: c# asp.net asp.net-mvc razor tuples

好的,所以我一直在尝试使用Tuple将多个模型传递给View,到目前为止,它的工作方式就像魅力一样。当我尝试这个时出现问题

@model Tuple<Smart_WEB.Models.Room, List<IGrouping<string, Smart_WEB.Models.Song>>, List<IGrouping<string, Smart_WEB.Models.Video>>>

The error

  

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

     

编译器错误消息:CS1003:语法错误,'&gt;'预期

     

来源错误:

     

Line 29:
Line 30:
Line 31: public class _Page_Views_Home_Index_cshtml : System.Web.Mvc.WebViewPage<Tuple<Smart_WEB.Models.Room { Line 32:
Line 33: #line hidden

如果我要提出类似的内容:

@model Tuple<Smart_WEB.Models.Room, List<IGrouping<string, Smart_WEB.Models.Video>>>

或者

@model Tuple<Smart_WEB.Models.Room, List<IGrouping<string, Smart_WEB.Models.Song>>>

和各自的服务器端代码完美配合。

提前感谢能帮助我的人;我即将放弃这个问题。

1 个答案:

答案 0 :(得分:2)

由于您基本上在视图中传递了多个模型,并且MVC旨在将一种类型传递给一个视图,因此我强烈建议您创建一个包装所有实体的模型:

public class ViewModel
{
    public Smart_WEB.Models.Room Room { get; set; }
    public List<IGrouping<string, Smart_WEB.Models.Song>> Songs { get; set; }
    List<IGrouping<string, Smart_WEB.Models.Video>> Videos { get; set; }
}

然后您可以在视图中将其设置为模型:

@model ViewModel