2015-07-01 48 views
0

我只是好奇而且同时感到困惑,如果MVC(MVC5)中的RenderPartial与使用jQuery的ajax调用相同,或者简单地说就是RenderPartial Async?是RenderPartial异步还是有点类似于jquery ajax调用?

+0

'如果的RenderPartial在MVC(MVC5)是相同的使用jQuery的Ajax调用'不,AJAX调用是我们从客户端到服务器端的事情。 RenderPartial将在甚至页面呈现之前在服务器上执行。 – ramiramilu

+0

RenderPartial和ajax调用不相同..RenderPartial在发送给客户端之前呈现一个局部视图来查看..而ajax允许来自客户端的页面被异步更新为多次调用.. –

回答

1

否RenderPartial是同步的。

但是,如果您尝试获取同步异步行为,则可以使用ajax调用sync/async动作。

'如果在的RenderPartial MVC(MVC5)是一样的使用Ajax调用jQuery的'

^让我解释一下。

例如,您正在使用RenderPartial呈现帖子的评论区域。有时候,我们可以说30秒,你可以使用一个ajax调用,它将呈现最新评论,并将客户端呈现的HTML返回给客户端。然后,您将在响应中将您的评论区域html替换为您从服务器收到的内容(ajax成功回调)。

面值例如:

@model WhenToUseRenderActionAndRenderPartial.Models.ShowPostViewModel 
@{ 
    ViewBag.Title = Model.Post.Title; 
} 

<section> 
    <article> 
     <header> 
      <h1>@Model.Post.Title</h1>  
     Posted on | <time datetime="@Model.Post.DatePublished.ToString("s")"> 
      @Model.Post.DatePublished.ToLongDateString() 
     </time> | @Model.Comments.Count() Comments 
     </header> 
     @Html.Raw(Model.Post.Content) 
    </article> 
</section> 
@{Html.RenderPartial("_Comments", Model.Comments);} 

^这是您的文章页面Razor视图用的RenderPartial有征求意见的区域。

@model IEnumerable<WhenToUseRenderActionAndRenderPartial.Models.Comment> 
<section> 
    <header> 
     <h3> 
      Comments</h3> 
    </header> 
    @foreach (var comment in Model) 
    { 
     <article> 
      <header> 
       @comment.Author on 
       <time datetime="@comment.DateCreated.ToString("s") "> 
        @comment.DateCreated.ToLongDateString() 
       </time> 
      </header> 
      <img alt="@comment.Author" [email protected] /> 
      <p> 
       @comment.Content 
      </p> 
     </article> 
    } 
</section> 

^这是您评论区的剃须刀视图。

而且您可以使用第二个视图来呈现评论直播(一次30秒)。 Ajax调用方法LiveController/BringLastCommentsPostId = 3这将带来评论和渲染仅评论部分视图,而不是整个页面。

一些进一步阅读这里:

渲染部分http://www.arrangeactassert.com/when-to-use-html-renderpartial-and-html-renderaction-in-asp-net-mvc-razor-views/(甜图)

阿贾克斯http://kyleschaeffer.com/development/the-perfect-jquery-ajax-request/

相关问题