2015-08-04 13 views
10

Tôi đang cố gắng thêm chế độ xem được trả về từ bộ điều khiển vào chế độ xem của tôi tĩnh. Trong MVC tiêu chuẩn tôi sẽ làm một cái gì đó như dưới đây.Trình trợ giúp hiển thị Sitecore 7.1 MVC chuyển các biến số

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

Đây là bộ điều khiển của tôi

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

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

Vì vậy, bằng cách sử dụng render helper Sitecore tôi có bên dưới, nơi ID là mục render trong Sitecore chỉ vào bộ điều khiển và hành động như trên. Tuy nhiên, tôi không thể chuyển qua productId như một tham số vào hành động của Product (productId luôn là null). Đây có phải là cách chính xác để chuyển một biến cho một hành động khác không?

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

Bạn có ý gì khi _... không thể chuyển qua tham số productId? _ Thoạt nhìn mã của bạn có vẻ đúng với tôi –

+0

Im tìm cách chuyển biến productId từ trình trợ giúp hiển thị trên chế độ xem của tôi vào Sản phẩm (productId) hành động trong bộ điều khiển của tôi. Hiện tại tham số productId trong hành động của tôi luôn là null. – Komainu85

+2

Bất kỳ lý do nào bạn không chỉ gọi Html.RenderAction() trực tiếp thay vì nhảy qua Sitecore? Tôi có thể hiểu cố gắng để tách biệt, nhưng luôn luôn có một sự phụ thuộc ở đâu đó (cho dù đó là hướng dẫn hay con đường để xem). – jammykam

Trả lời

4

Theo tôi biết cú pháp này không được hỗ trợ để truyền tham số để chèn vào hành động.

Các thông số bạn chỉ định được đưa vào bộ sưu tập rendering.Properties.

Có thể viết lại chữ ký hành động và sử dụng RenderingContext.Current.Rendering.Properties bên trong để đọc giá trị không?

+0

Cảm ơn, tôi sẽ xem liệu tôi có thể truy cập biến thông qua các thuộc tính hiển thị hay không. – Komainu85

+0

Thật sao ?! FFS sitecore. Tại sao bạn phải phá vỡ MVC rất nhiều. Cảm ơn bạn về thông tin. – Liam

Các vấn đề liên quan