0

ビューで Html.RenderAction を使用して、コントローラーにあるメソッドを呼び出しています。コントローラー メソッドはカスタム オブジェクトを返します。この返されたオブジェクトをビューで使用する方法を知りたいです。

意見

//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 などの文字列と int のフィールドがあります。

4

1 に答える 1

1

RenderAction は、ページへの応答を直接書き込むために使用され、部分ビューのキャッシュに役立ちます。メソッドは ではなく部分ビューを返す必要がありGetDeliverableResponseます。部分ビューを定義して、GetDeliverableResponseモデルとして使用できます。

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

これ_DerliverableGetDeliverableResponse、モデルとして持つ部分的なビューです。よりきれいに保つために、次の_Derliverableような専用のモデル クラスで応答オブジェクトをラップすることもできます。

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

アクション メソッドで、このモデルのオブジェクトを渡す必要があります。

return PartialView("_Deliverable", new DerliverableModel { Derliveries = response });
于 2015-10-14T20:08:05.783 に答える