InvalidOperationException:传递给ViewDataDictionary的模型项的类型为'System.Tuple

时间:2018-03-12 12:28:52

标签: c# asp.net-mvc

我的基础模型如下:

namespace MyNamespace
{
  public abstract class ViewModelBase
  {
      public string Environment { get; set; }
  }
}

我还有其他2个型号:

namespace MyNamespace
{
 public class ErrorViewModel : ViewModelBase
 {
     public string Error { get; set; }
  }
}

namespace MyNamespace
{
 public class SetPageViewModel : ViewModelBase
 {
     public string Name {get; set;}
     public string Address { get; set; }  
 }
}

我在我的控制器中使用它:

    public IActionResult Index()
    {
        var tuple = new Tuple<ErrorViewModel, SetPageViewModel>(new ErrorViewModel(), new SetPageViewModel ());          

      //  tuple.Item1.Environment = "Dev";
        return View(tuple);
    }

通过以上设置,我想在我的视图中使用以下内容来访问这些模型:

    @model Tuple<ErrorViewModel, SetPageViewModel>

但我一直在收到错误:

  

InvalidOperationException:传递给的模型项   ViewDataDictionary属于类型   'System.Tuple`2 [MyNamespace.ErrorViewModel,MyNamespace.SetPageViewModel]',   但是这个ViewDataDictionary实例需要一个类型的模型项   'MyNamespace.ViewModelBase'。

我尝试了以下内容:

  • 注释掉我定义我的元组的视图部分以查看错误是否消失,但仍然出现此错误。

  • 对于这两个模型,我试图删除ViewModelBase,即不从基础模型继承,但我仍然是上面的错误。

不确定我在这里还缺少什么。

0 个答案:

没有答案