Razor@模型生成的代码无效
本文关键字:代码 无效 模型 Razor@ | 更新日期: 2023-09-27 18:00:28
当我试图在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 {
然后抛出,因为它在语法上无效。
我尝试过将类型名称包装在括号中,删除类型参数之间的空格,更改类型参数(删除嵌套的Tuple),并将其更改为@inherits System.Web.Mvc.WebViewPage<...>
,所有这些似乎都没有效果。
我以前从未遇到过这样的事情。是什么导致了这种行为?
要扩展我的评论,您可以创建一个视图模型类,如下所示:
public class FooViewModel
{
public Tuple<int, Tuple<int, string, string>, int> Data { get; set; }
}
然后在您的控制器中,创建该视图模型的新实例并将其传递给视图:
@model FooViewModel
@{
var data = Model.Data;
}
这将有助于Razor引擎在编译视图时发挥作用。