C# 更新部分但不是整个页面
我在我的页面上使用下面的代码和部分呈现,如下所示。我添加了部分内容以供参考。我在分部上有一个next按钮,当我单击该按钮时,它将转到服务器并从服务器返回下一页作为分部。我想知道如何更新部分数据而不是整个页面 Main.cshtmC# 更新部分但不是整个页面,c#,asp.net,asp.net-mvc,sitefinity,C#,Asp.net,Asp.net Mvc,Sitefinity,我在我的页面上使用下面的代码和部分呈现,如下所示。我添加了部分内容以供参考。我在分部上有一个next按钮,当我单击该按钮时,它将转到服务器并从服务器返回下一页作为分部。我想知道如何更新部分数据而不是整个页面 Main.cshtm <div class="pr-nav"> <div class="btn btn-primary"> User Guide </div> <div class="btn btn-prima
<div class="pr-nav">
<div class="btn btn-primary">
User Guide
</div>
<div class="btn btn-primary">
Key Info
</div>
</div>
<div class="container">
@{ Html.RenderPartial("Partial"); }
</div>
用户指南
关键点信息
@{Html.RenderPartial(“Partial”);}
Partial.cshtml
<div>
<ul class="dashbord">
@foreach (var i in Model)
{
<li class="item"><a href="@Url.Action("", "CISIProfessionalRefresherController", new { subjectID = i.subject_id })">
<div class="itemBox">
<div class="itemImage">
Image will go here
</div>
<div class="itemContent">
@i.subject_title
<br />
@i.cpd_time_text
<br />
@i.sub_heading
</div>
</div>
</a></li>
}
</ul>
</div>
@if (Model.HasPreviousPage)
{
@Html.ActionLink("< Prev", "getMySubjectList", new { catogoryId = 0, pageid = Model.PageNumber - 1 })
}
else
{
@Html.Raw(" ");
}
@if (Model.HasNextPage)
{
@Html.ActionLink("Next >", "getMySubjectList", new { catogoryId = 0, pageid = Model.PageNumber + 1 })
}
else
{
@Html.Raw(" ")
}
@foreach(模型中的var i)
{
}
@if(Model.HasPreviousPage)
{
@ActionLink(“”,“getMySubjectList”,新的{catogoryId=0,pageid=Model.PageNumber+1})
}
其他的
{
@Html.Raw(“”)
}
如果您的上一个和下一个id为“#aPrev”和“#aNext”,则您可以:
$(".container").on("click", "#aPrev,#aNext", function(){
$.get($(this).attr("href"), function(data){
$(".container").html(data);
})
})
特别注意
要设置上一个Id和下一个Id,可以使用:
@Html.ActionLink("< Prev", "getMySubjectList", new { catogoryId = 0, pageid = Model.PageNumber - 1, id = "aPrev" })
@Html.ActionLink("Next >", "getMySubjectList", new { catogoryId = 0, pageid = Model.PageNumber + 1, id = "aNext" })
@Html.ActionLink(“”,“getMySubjectList”,新的{catogoryId=0,pageid=Model.PageNumber+1,id=“aNext”})
请注意,默认情况下,当您通过Ajax请求某个操作方法时,Sitefinity将返回整页html
您需要首先注册一个自定义MVC路由,然后向该操作发送一个ajax请求。在操作方法中,检查if Request.IsAjaxRequest(),然后返回部分视图
注册MVC路由示例(第8节):
对自定义路由的请求示例:
@Html.PagedListPager(Model.Products,
p => Url.RouteUrl("ajaxRoute",
new
{
controller = ViewContext.RouteData.Values["controller"].ToString(),
action = "Index",..
}
当我试图学习如何正确地执行此操作时,本教程非常有用:您需要使用ajax更新当前页面
@Html.PagedListPager(Model.Products,
p => Url.RouteUrl("ajaxRoute",
new
{
controller = ViewContext.RouteData.Values["controller"].ToString(),
action = "Index",..
}