C# Razor@model生成的代码无效
我在尝试在局部视图中添加@model指令时遇到了一个奇怪的问题 使用以下行时:C# Razor@model生成的代码无效,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我在尝试在局部视图中添加@model指令时遇到了一个奇怪的问题 使用以下行时: @model Tuple<int, Tuple<int, string, string>, int> @模型元组 将生成以下类声明: public class _Page_views_forms_controls__filter_edit_cshtml : System.Web.Mvc.WebViewPage<Tuple<int { public class\u Page\u
@model Tuple<int, Tuple<int, string, string>, int>
@模型元组
将生成以下类声明:
public class _Page_views_forms_controls__filter_edit_cshtml : System.Web.Mvc.WebViewPage<Tuple<int {
public class\u Page\u views\u forms\u controls\u filter\u edit\u cshtml:System.Web.Mvc.WebViewPage要展开我的评论,可以创建一个viewmodel类,如下所示:
public class FooViewModel
{
public Tuple<int, Tuple<int, string, string>, int> Data { get; set; }
}
这将有助于Razor引擎编译视图。简单修复-使用viewmodel类包装元组中包含的数据
这是严格要求的吗?出于某种原因,我是否无法将参数化类型用作模型?我的第三个元组字段实际上是一个视图模型(不是如图所示的int),前两个是循环中的某个上下文。我不想显式地命名该实体,因此使用元组。这不是强制性的,但使用viewmodel是非常好的做法。一般同意,但在这里我特别认为这是不必要的。不管怎样,你有没有想过是什么导致了上述行为?即使我选择了另一条路,我也希望理解这里的问题。我承认,这是不寻常的。我以前也没有遇到过这种情况。我在谷歌上找不到任何与你类似症状的相关信息。事实上,我也找不到任何相关信息。这似乎是特定于Tuple的,因为Dictionary工作得很好,但Tuple本身也有同样的问题。我认为可能是多个泛型重载造成了一些混乱,但不知道如何解决它。
@model FooViewModel
@{
var data = Model.Data;
}