Я создаю продукты из шаблона продукта. Каждый раз, когда клиент выбирает продукт для просмотра информации, необходимо загрузить данные из этого продукта. Я создал контроллер, модель и вид. Модель генерируется с помощью TDS. Мне нужно передать идентификатор элемента в [SitecoreId] из контроллера. Вот код, который я использую:
Из макета:
@{var id = Sitecore.Data.ID.Parse("{74A67488-8E33-47E2-86F5-25AD23FDF3D3}"); }
@Html.Sitecore().ControllerRendering("ProductOverview", "Index", new { ItemId = @id })
Контроллер:
public class ProductOverviewController : Controller
{
private readonly IMvcContext _mvcContext;
public ProductOverviewController(IMvcContext mvcContext)
{
_mvcContext = mvcContext;
}
// GET: ProductOverview
public ActionResult Index()
{
var itemId = string.Empty;
var rc = RenderingContext.CurrentOrNull;
if (rc != null)
{
var parms = rc.Rendering.Properties;
itemId = parms["ItemId"];
}
var dataSource = _mvcContext.GetContextItem<ProductOverviewModel> ();
return View(dataSource);
}
}
ItemId var имеет правильный идентификатор, который я передаюиз макета (пока жестко запрограммирован). Отсюда я в полной растерянности от того, как включить это в модель. Я перепробовал десятки предложений от поисков, но модель всегда использует текущий элемент (как установлено GlassBase в самой модели), а не идентификатор продукта, который содержит данные для этого продукта.
Это то, что я хочусделать даже можно? Можно ли переопределить [SitecoreId]?