当@Model是Task时访问@Model

时间:2017-07-04 22:57:28

标签: c# razor asp.net-core

我应该如何使用任务的@Model?

剃刀:

@model Task<AreBuraas.Core.v1.Models.Category>

<article class="panel panel-primary">
    <section class="panel-heading">
        <h1>
            @Model.Name
        </h1>
        <h3>
            @Model.Description
        </h3>
    </section>
    <section class="panel-body">
        her kommer content!
    </section>
</article>

控制器:

public IActionResult Display(int id)
{
    return View(_data.GetCategory(id));
}

错误:

  

&#39;任务&#39;不包含&#39;姓名&#39;的定义和不   扩展方法&#39;名称&#39;接受第一个类型的参数   &#39;任务&#39;可以找到(你错过了使用指令或   汇编参考?)

            @Model.Name
     

&#39;任务&#39;不包含&#39;描述&#39;的定义和   没有扩展方法&#39;说明&#39;接受第一个类型的参数   &#39;任务&#39;可以找到(你错过了使用指令或   汇编参考?)

                @Model.Description

3 个答案:

答案 0 :(得分:5)

你不能这样做。

相反,您应该await控制器中的任务并将其结果传递给视图。

答案 1 :(得分:1)

这实际上是你应该关注控制器的事情。剃刀语法中的@model不能成为任务。相反,这是控制器的用途,按照惯例,它应该将实际结果传递给视图。

答案 2 :(得分:0)

  

登陆此解决方案:

public IActionResult Display(int id)
{
    var data = _data.GetCategory(id);
    var result = data.Result;

    return View(result);
}