无法在View中显示结果

时间:2017-03-03 14:08:27

标签: asp.net-mvc

如下定义的模型(没有属性,只有一种方法):

@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 ;.

2 个答案:

答案 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();
}

删除了视图并再次创建,并牢记上述修改后的操作方法。