2015-08-04 4 views
10

Я пытаюсь добавить представление, возвращенное с контроллера, в мое представление статически. В стандартном MVC я бы сделал что-то вроде ниже.Sitecore 7.1 MVC Передача вспомогательных переменных MVC

@{Html.RenderAction("Product", "ProductListing", new {productId = product.ItemId});} 

Вот мой контроллер

[System.Web.Http.HttpGet] 
public ActionResult Product(ID productId) 
{ 
var product= _productRepositorty.GetProduct(productId); 

return View("~/Views/Product/ProductDetails.cshtml", product); 
} 

Таким образом, использование рендеринга помощника Sitecore я имею ниже, где ID является элемент рендеринга в Sitecore указывая на контроллер и действие, как описано выше. Однако я не могу передать productId в качестве параметра в действие Product (productId всегда равно null). Это правильный способ передачи переменной в другое действие?

@Html.Sitecore().Rendering("{AA6C2188-1897-4577-BE0A-25DD2BBA8AF1}", new { productId = product.ItemId }) 
+0

Что вы подразумеваете под _... неспособным пройти через продукт? Как параметр? _ На первый взгляд ваш код выглядит правильно для меня –

+0

Im, который хочет передать переменную productId из помощника Rendering на моем представлении в Product (productId) в моем контроллере. В настоящее время параметр productId в моем действии всегда равен нулю. – Komainu85

+2

Любые причины, по которым вы не просто вызываете Html.RenderAction() напрямую, а не перескакиваете через Sitecore? Я могу понять, пытаясь разойтись, но где-то всегда есть зависимость (будь то guid или путь к представлению). – jammykam

ответ

4

Насколько я знаю, этот синтаксис не поддерживается для передачи параметров для вставки в действие.

Указанные вами параметры помещаются в коллекцию rendering.Properties.

Можно ли переписать подпись действия и использовать RenderingContext.Current.Rendering.Properties внутри, чтобы прочитать значение?

+0

Спасибо, посмотрю, могу ли я получить доступ к переменной с помощью свойств рендеринга. – Komainu85

+0

Действительно ?! FFS sitecore. Зачем вам так много сломать MVC. Спасибо за информацию. – Liam

Смежные вопросы