Использование объекта, возвращенного из Html.RenderAction
Я использую Html.RenderAction в моем View для вызова метода, который находится в моем контроллере. Метод контроллера возвращает пользовательский объект, я хочу знать, как бы я мог использовать этот возвращенный объект в представлении.
Посмотреть
//at the top
@model ServiceCheckerUI.Models.DeleteDeliverableModel
@{ Html.RenderAction("retrieveDeliverableInfo","DeliverableManagement", new {uniqueId = element});}
//Trying to use the model property
Model.deliverableResponse.{properties}
контроллер
public ActionResult retrieveDeliverableInfo(string uniqueId){
var response = _target.DoSomething();
return PartialView("DeleteDeliverable", new DeleteDeliverableModel {deliverableResponse = response});
}
модель
namespace ServiceCheckerUI.Models
{
public DeleteDeliverableModel
{
//omit
public GetDeliverableResponse deliverableResponse {get;set}
}
}
Объект GetDeliverableResponse имеет такие поля, как id, name и т. Д., Которые представляют собой строки и целые числа.
1 ответ
RenderAction используется для непосредственного написания ответа на страницу и помогает в кэшировании частичного представления. Ваш метод должен возвращать частичное представление вместо GetDeliverableResponse
, Вы можете определить частичное представление и использовать GetDeliverableResponse
как это модель.
public ActionResult RetrieveDeliverableInfo(string uniqueId)
{
var response = _target.DoSomething();
return PartialView("_Deliverable", response );
}
Вот _Derliverable
будет ваш частичный вид, который будет иметь GetDeliverableResponse
как модель. Чтобы сделать его более аккуратным, вы можете также обернуть объект ответа в отдельный класс модели: _Derliverable
как это:
class DerliverableModel
{
public GetDeliverableResponse Derliverables { get; set; }
}
Теперь в вашем методе действия вам нужно передать объект этой модели:
return PartialView("_Deliverable", new DerliverableModel { Derliveries = response });