【问题标题】:Sync process during Async Process异步过程中的同步过程
【发布时间】:2015-10-04 15:32:55
【问题描述】:

我正在使用 ASP.NET MVC Razor。

在我的解决方案中,我使用了一个只有一个 Action 方法的控制器。布局有左侧导航、顶部和页脚。这三个的 Html 部分放置在部分视图中,我在布局中调用部分视图,如下所示。

<!DOCTYPE html>
<html>
<head>
    @{Html.RenderPartial("HeaderScripts");}
</head>
<body class="nav-md">

    @{Html.RenderPartial("LeftSideNavigations");}
    @{Html.RenderPartial("TopView");}

    <div class="right_col" role="main">
        @RenderBody()
    </div>

    @{Html.RenderPartial("FooterScripts");}
</body>
</html>

这是由于我的操作方法如下所示。

[AttributeRouting.Web.Mvc.Route("All-Categories")]
public async Task<ActionResult> Categories()
{
    var list = await _category.CategoryList(null);
    return View(list.Value);
}

这里的问题是......结果是使用异步来的,所以我什至不能在布局中调用部分视图的操作方法,如下所示。

@{
    Html.RenderAction("ActionName");
}

因为我必须在操作方法中编写一些登录信息。我知道我们不能这样称呼它:Html.RenderAction("ActionName") 在 VS 2013 中,因为框架永远不会允许这样做。

问题:有没有办法调用局部视图,除了使用 DOM 上的 JQuery 准备好了吗?

【问题讨论】:

    标签: c# asp.net-mvc-3 asp.net-mvc-4 c#-4.0 async-await


    【解决方案1】:

    从客户端的角度来看,Controller 中的异步操作等同于非异步操作。

    使用异步标记 Action 仅允许在请求 DB 时将线程释放回 ThreadPool。

    如果您想异步填充部件,则需要使用 AJAX。 有一些有趣的方法,如果你有兴趣,比如this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      • 2019-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多