Я столкнулся с этой проблемой. У меня есть представление, которое отображается так:
@inherits Umbraco.Web.Mvc.UmbracoViewPage
@using MyProject.Web.Models;
@using ContentModels = Umbraco.Web.PublishedContentModels;
@{
Layout = "MasterPage.cshtml";
}
@Html.Partial("_HeroModule")
@foreach (var item in Model.GetPropertyValue<IEnumerable<IPublishedContent>>("generalContentCollection"))
{
var partialViewName = "_" + item.DocumentTypeAlias;
if (partialViewName == "_curtainsModule")
{
Html.RenderPartial("CurtainsModule", new CurtainsModuleModel(Model, item));
}
else
{
@Html.Partial(partialViewName, item);
}
Здесь 'item' - это общая коллекция вложенного контента. Внутри него есть еще одна коллекция, которую мне нужно достать, называемая "fabricCollection", которая также называется Nested Content.
Проблема в том, что когда я иду к SurfaceController и делаю это , fabricCollection возвращает ноль , вероятно, потому что это вложенное содержимое:
[HttpPost]
public JsonResult GetFabrics(int data)
{
//gets the id of the actual page doctype
var page = Umbraco.TypedContent(data);
//fabricsCollection underneath returns null
var fabricsCollection = page.GetPropertyValue<IEnumerable<IPublishedContent>>("fabricsCollection");
return Json(fabricsCollection);
}
}
и вызов ajax, который отлично работает:
$(".clearAll-desktop").click(function () {
event.preventDefault;
var pageId = $(".curtains-module").attr('id');
var fabrics = "@Model.FabricsCollection.ToString()";
debugger;
console.log(pageId);
$.ajax({
url: '/umbraco/Surface/CurtainsModuleSurface/GetFabrics',
type: 'POST',
data: { data: pageId, collectionName: fabrics },
dataType: 'string',
success: function (data1) {
console.log('success');
}
});
return false;
})
Я застрял здесь на несколько дней, и я не знаю, что я делаю неправильно. Кто-нибудь с более ясным умом может определить, что я делаю неправильно?