Utilizzo di RenderAction (nome azione, valori) nel problema MVC4

Devo visualizzare alcuni oggetti figlio ( Items ) di una Request quadro. Invece di Richiesta, ho trovato migliore per passare in una vista che contiene più informazioni rispetto all’ quadro di richiesta originale. Questa vista ho chiamato RequestInfo , contiene anche l’ Id richieste originale.

Poi nella MVC View ho fatto:

 @model CAPS.RequestInfo ... @Html.RenderAction("Items", new { requestId = Model.Id }) 

Per il rendering:

 public PartialViewResult Items(int requestId) { using (var db = new DbContext()) { var items = db.Items.Where(x => x.Request.Id == requestId); return PartialView("_Items", items); } } 

Quale mostrerebbe un elenco generico:

 @model IEnumerable 

@Html.ActionLink("Create New", "Create")

@foreach (var item in Model) { }
@Html.DisplayNameFor(model => model.Code) @Html.DisplayNameFor(model => model.Description) @Html.DisplayNameFor(model => model.Qty) @Html.DisplayNameFor(model => model.Value) @Html.DisplayNameFor(model => model.Type)
@Html.DisplayFor(modelItem => item.Code) @Html.DisplayFor(modelItem => item.Description) @Html.DisplayFor(modelItem => item.Qty) @Html.DisplayFor(modelItem => item.Value) @Html.DisplayFor(modelItem => item.Type) @Html.ActionLink("Edit", "Edit", new { id=item.Id }) | @Html.ActionLink("Details", "Details", new { id=item.Id }) | @Html.ActionLink("Delete", "Delete", new { id=item.Id })

Ma sto ricevendo un errore del compilatore sulla riga RenderAction “Can not implicity convert type” void “a” object “” Qualche idea?

È necessario utilizzare questa syntax quando si chiamano i metodi Render:

 @{ Html.RenderAction("Items", new { requestId = Model.Id }); } 

@syntax , senza le parentesi graffe, si aspetta un tipo di ritorno che viene reso alla pagina. Per chiamare un metodo che restituisce il vuoto dalla pagina, è necessario racchiudere la chiamata tra parentesi graffe.

Si prega di consultare il seguente link per una spiegazione più approfondita.

http://haacked.com/archive/2009/11/18/aspnetmvc2-render-action.aspx

Utile alternativa:

 @model CAPS.RequestInfo ... @Html.Action("Items", new { requestId = Model.Id }) 

Questo codice restituisce MvcHtmlString. Funziona con partialview e visualizza i risultati. Non richiede {} caratteri.