我的应用程序是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
在调试时,返回的对象有两个项目,模型和字符串。 无法弄清楚如何将模型item1传递给视图。
答案 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
访问它。