Использование объекта, возвращенного из 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 });
Другие вопросы по тегам