当View模型类型是具有4个以上项目的元组时,Asp.net mvc 2 .net 4.0错误

时间:2010-04-22 23:06:27

标签: .net asp.net-mvc asp.net-mvc-2 .net-4.0 tuples

当我在Asp.net mvc 2中创建强类型视图时,模型类型为Tuple的.net 4.0,当元组有超过4个项目时出现错误

示例1:   视图类型为Tuple<string, string, string, string>(4元组),一切正常

视图:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/WebUI.Master" Inherits="System.Web.Mvc.ViewPage<Tuple<string, string, string, string>>" %>

控制器:

var tuple = Tuple.Create("a", "b", "c", "d");
return View(tuple);

示例2:   视图类型是Tuple<string, string, string, string, string>(5元组),我有这个错误:Compiler Error Message: CS1003: Syntax error, '>' expected

视图:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/WebUI.Master" Inherits="System.Web.Mvc.ViewPage<Tuple<string, string, string, string, string>>" %>

控制器:

var tuple = Tuple.Create("a", "b", "c", "d", "e");
return View(tuple);

示例3   如果我的视图模型是动态类型,我可以使用4元组和5元组,并且页面上没有错误

视图:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/WebUI.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

控制器:

dynamic model = new ExpandoObject();
model.tuple = Tuple.Create("a", "b", "c", "d");
return View(model);

视图:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/WebUI.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

控制器:

dynamic model = new ExpandoObject();
model.tuple = Tuple.Create("a", "b", "c", "d", "e");
return View(model);

即使我有Tuple<string, Tuple<string, string, string>, string> 3元组之类的东西,其中一个项目也是一个元组,并且所有元组中的项目总和超过4,我得到相同的错误,Tuple<string, Tuple<string, string>, string>工作正常

1 个答案:

答案 0 :(得分:1)

请查看:从列表中获取对象&lt;元组&lt; object1,object2&gt; &GT;并将它们存储在Strongly Typed ViewModel

Get object out of List< Tuple < object1, object2 > > and store in ViewModel

通过这样做,您可以设置一个包含5个相关表的连接。你将(概率接近确定性)最终得到包含5个对象的元组(反映表格)。通过listoftuples迭代并将每个元组中的项分隔为5个对象列表。按照我在5个单独的部分视图中建议的方式调用它们(如果您熟悉ASP MVC 2)。如果没有,我相信你会管理,无论如何。在不久的将来,我希望自己能够尝试一下。我肯定会至少建立一个包含三个表的连接,可能是四个。但是,我可以想象,在某些情况下,有人必须加入至少五个...尤其是当数据库高度规范化时。更迭!