如下定义的模型(没有属性,只有一种方法):
@model PartyInvitesInProASPNETMVC5.Models.MyAsyncMethods.GetPageLength()
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Google Page Length</title>
</head>
<body>
<div>@Convert.ToInt32(@Model)@*How to write code here?*@
</div>
</body>
</html>
如下所示的书面控制器操作方法:
2[System.Net.Http.HttpResponseMessage,System.Nullable
我不了解如何为上述操作方法生成视图。从默认生成的视图中修改如下所示的代码。但是,仍然会出错。
{!raw f=myfield}©
以下是我得到的错误:
传递到字典中的模型项的类型为&#39; System.Threading.Tasks.ContinuationResultTaskFromResultTask csv
1 [System.Int64]]&#39;,但此字典需要类型的模型项&#39; System.Nullable`1 [System.Int32]&#39 ;.
答案 0 :(得分:1)
您应该等待控制器中的结果:
public async Task<ActionResult> GooglePageLength()
{
long? content = await MyAsyncMethods.GetPageLength();
return View(content);
}
然后创建视图模型类型long?
:
@model long?
您当前正在将异步完成的任务传递给视图。而且您还将模型类型设置为返回任务的函数(不知道您甚至可以这样做)。
通常,您应该等待异步的异步结果,然后将结果作为视图的模型返回。
答案 1 :(得分:-1)
感谢上帝,我得到了解决方案。
不幸的是,在没有了解原因的情况下,我获得了一次投票。
无论如何,解决方案非常简单明了。
修改了下面的动作方法。
public ActionResult WellsFargoPageLength()
{
ViewBag.PageLength = MyAsyncMethods.GetPageLength().Result;
return View();
}
删除了视图并再次创建,并牢记上述修改后的操作方法。