当我在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>
工作正常
答案 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)。如果没有,我相信你会管理,无论如何。在不久的将来,我希望自己能够尝试一下。我肯定会至少建立一个包含三个表的连接,可能是四个。但是,我可以想象,在某些情况下,有人必须加入至少五个...尤其是当数据库高度规范化时。更迭!