簡體   English   中英

.Net異步調用局部視圖

[英].Net asynchronously calling a partial view

當我嘗試渲染基本上在幻燈片放映機中顯示一些幻燈片的局部視圖時,我遇到了一個錯誤。

幻燈片存儲在db中,從調試中我知道我的控制器方法肯定是要獲取一組幻燈片對象。

但是它仍然拋出此錯誤,我不確定為什么。 我得到的錯誤是:

{“執行處理程序'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper'的子請求出錯。”}內部例外:

HttpServerUtility.Execute在等待異步操作完成時被阻止。

我假設這與同步有關,但是我不確定。

任何幫助將不勝感激。

父視圖(索引)

@{
    ViewBag.Title = "Title";
    Layout = "~/Views/Shared/_Layout.cshtml";

    ViewBag.IsIndex = true;
}

<!-- BEGIN .featured-slider -->
<div class="featured-slider">
    <!-- BEGIN .slider-background -->
    <div class="slider-background">
        <!-- BEGIN .row -->
        <div class="row">
            <!-- BEGIN .sixteen columns -->
            <div class="sixteen columns">
                @{
                    Html.RenderAction("Slideshow", new { controller = "home" });
                }
             <!-- END .sixteen columns -->
            </div>
        <!-- END .row -->
        </div>
    <!-- END .slider-background -->
    </div>
<!-- END .featured-slider -->
</div>

控制器方式:

    public async Task<PartialViewResult> Slideshow()
    {
        var slides = await _slides.GetPublishedSlidesAsync();

        return PartialView("_Slideshow", slides);
    }

_Slideshow部分視圖:

 @model IEnumerable<Models.Slide>

<!-- BEGIN .slideshow -->
<div class="slideshow radius-full">
    <!-- BEGIN .flexslider -->
    <div class="flexslider radius-full" control-nav="true" data-speed="10000" data-transition="slide">
        <!-- BEGIN .slides -->
        <ul class="slides">
            @foreach (var slide in Model)
            {
                <li>
                    <!-- BEGIN .sixteen columns -->
                    <div class="sixteen columns">
                        if(false)
                        { 
                            <div class="feature-vid">

                            </div>
                        }
                        else if (true)
                        {
                            <a class="feature-img radius-full" href="" rel="bookmark" title="">
                                <img src="@slide.Image" />
                            </a>
                            if (false)
                            {
                                <!-- BEGIN .information -->
                                <div class="information radius-full">
                                    <div class="six columns">
                                        <h2 class="headline small">qqqq</h2>
                                    </div>
                                    <div class="ten columns">
                                        <div class="excerpt">aaaa</div>
                                    </div>
                                <!-- END .information -->
                                </div>
                            }
                        }
                    <!-- END .sixteen columns -->
                    </div>
                </li>
            }
        <!-- END .slides -->
        </ul>
    <!-- END .flexslider -->
    </div>
<!-- END .slideshow -->
</div>

不幸的是,ASP.NET MVC不支持ASP.NET 4.x上的異步局部視圖。 在ASP.NET 5.0中已經解決了此限制(視圖組件可以是異步的),但是4.x分支不太可能支持此限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM