可以将名为Tuple的C#用作MVC页面模型类型吗?

pau*_*guy 7 c# tuples model named c#-7.0

在C#7中,您可以使用命名元组:

var foo = (Name: "Joe", Age: 42);
Run Code Online (Sandbox Code Playgroud)

如果我使用以下方法将其传递给MVC模型:

return View(foo);
Run Code Online (Sandbox Code Playgroud)

那么应该在cshtml文件中使用什么语法来声明模型?虽然这不起作用,但有点......

@model (string Name, int Age);
Run Code Online (Sandbox Code Playgroud)

Gil*_*een 6

至于当前时间你不能也不需要使用

@model Tuple<string, int>
//or
@model ValueTuple<string, int>
Run Code Online (Sandbox Code Playgroud)

对于两个选项之间的区别:System.ValueTuple和System.Tuple之间有什么区别?

您可以继续使用GitHub:Razor在迭代命名的Tuple时会抛出CompilationFailedException (我知道它作为重复关闭,但名称更符合当前情况)

  • 是的,这是 Razor 2.0.0 中的一个错误 - 在此处跟踪 https://github.com/aspnet/Razor/issues/1592。这将在 2.1.0 中修复 (2认同)