使用从 Html.RenderAction 返回的对象

Using an object returned from Html.RenderAction

我在视图中使用 Html.RenderAction 来调用控制器中的方法。控制器方法 returns 一个自定义对象,我想知道如何在视图中使用这个返回的对象。

查看

//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 等字段,它们是字符串和整数。

RenderAction 用于直接向页面写入响应并帮助缓存局部视图。您的方法应该 return 部分视图而不是 GetDeliverableResponse。您可以定义局部视图并使用 GetDeliverableResponse 作为模型。

public ActionResult RetrieveDeliverableInfo(string uniqueId)
{
    var response = _target.DoSomething();
    return PartialView("_Deliverable", response );
}

此处 _Derliverable 将是您的部分视图,其中模型为 GetDeliverableResponse。 为了让它更整洁,您还可以将响应对象包装在 _Derliverable 的专用模型 class 中,如下所示:

class DerliverableModel
{
   public GetDeliverableResponse Derliverables { get; set; } 
}

现在在您的操作方法中,您需要传递此模型的对象:

return PartialView("_Deliverable", new DerliverableModel { Derliveries = response });