我有以下情况:日历页面,用于加载过去2个月的初始销售节点。此页面有一个加载更多按钮,可以获取更多销售项目,这些项目是销售的另外两个月。
我已将调用添加到控制器操作,如下所示:
public ActionResult LoadMoreSales(int months = 0)
{
if (Request.IsAjaxRequest())
{
if (Request.QueryString["department"] == null)
{
return PartialView("Calendar/_Sales", GetSales(0, months));
}
else
{
int depId = 0;
Int32.TryParse(Request.QueryString["department"], out depId);
return PartialView("Calendar/_Sales", GetSales(depId, months));
}
}
else
{
return PartialView("Calendar/_Sales");
}
}
GetSale 检索 SaleViewModel 列表,并在访问日历页面时使用 _Sales 部分单击加载更多按钮。通过这种方法,正在进行AJAX调用并且正在检索列表。
_Sales 部分继承以下内容:
@inherits Umbraco.Web.Mvc.UmbracoViewPage<IEnumerable<SaleViewModel>>
点击按钮jQuery事件:
$('.js-reload-details').on('click', function (evt) {
$('div#loading').html('<img src="/images/ajax-loader.gif" />');
evt.preventDefault();
evt.stopPropagation();
var $detailsDiv = $('#detailsDiv'),
url = $(this).data('url');
$.get(url, function (data) {
$detailsDiv.replaceWith(data);
});
$('div#loading').empty();
});
按钮点击实现如下:
<a id="loadMore" class="js-reload-details cta" data-url="@Url.Action("LoadMoreSales", "Calendar", new { months = -2})" href="javascript:;">@Umbraco.GetDictionaryValue("Calendar.LoadMore")</a>
正在加载 Sale 项目,但我无法访问 UmbracoHelper ,当我将宏添加到销售页面字段列表时,调用会中断,因为有没有 UmbracoContext 参考。此外,以下字典调用不起作用:
@umbracoHelper.GetDictionaryValue("Calendar.ViewDetails")
有没有人有类似的问题?
Related our.umbraco forum post
修改
我也尝试过以下提交表单实现,但结果是一样的:
AJAX表格:
@using (Ajax.BeginForm("LoadMoreSales",
"Calendar",
new {months = -2},
new AjaxOption { HttpMethod = "GET",
OnSuccess = "loadMore(data, status, xhr)" }))
jQuery实现:
function loadMore(data, status, xhr) {
$('div#loading').html('<img src="/images/ajax-loader.gif" />');
if (data != '') {
$("#saleList").append(data);
}
$('div#loading').empty();
}
答案 0 :(得分:0)
的Marko,
这是在v6但类似的问题,所以在部分我做了
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current); 此致
伊斯梅尔