.net Core System.ValueTuple

时间:2017-09-17 03:10:03

标签: c# asp.net-core

我的应用程序是MVC Core c#,我从一个通用存储库中的方法返回两个项目,对象和字符串:

   public object PostWebApi(TObject model, string url, string dir)
        {...
    return (model, msg);}

在控制器中我使用

  var data = _studentService.PostWebApi(WebApiDirectory());
 return View(data)

将模型传递给视图,我收到错误

The model item passed into the ViewDataDictionary is of type 'System.ValueTuple

enter image description here

在调试时,返回的对象有两个项目,模型和字符串。 无法弄清楚如何将模型item1传递给视图。

2 个答案:

答案 0 :(得分:2)

另一种方式可能是您将视图模型更改为

@model System.ValueTuple<WebUI.Models.Student, object>

并在 Item1 Item2 礼节中访问您的值

答案 1 :(得分:1)

当您执行return View(data)时,您会将值元组返回到您的视图,其中data是值元组的结果。您需要返回data.Item1。

首先,为了便于阅读,你应该在PostWebApi方法中为你的元组命名返回值。所以你想要public (Student, String) PostwebApi()之类的东西,而不是像public (Student student, String msg) PostWebApi()这样的东西。

然后在您的控制器中,您可以执行return View(data.student);如果您需要元组的其他部分,则可以通过data.msg访问它。