0

私は人間関係に頭を悩ませようとしていますが、誰かが私のためにこれを明確にしてくれることを願っています.

私は次の2つのモデルを持っています

public class dsExpressionOfInterest
{
    public int dsExpressionOfInterestID { get; set; }

    [Display(Name = "Customer Name")]
    public string CustomerName { get; set; }

    public virtual dsRegistration dsRegistration { get; set; }
}

public class dsRegistration
{
    public int dsRegistrationID { get; set; }

    [Display(Name = "Expression Of Interest ID")]
    public int dsExpressionOfInterestID { get; set; }

    [Display(Name = "SLA Received")]
    public bool SLAReceived { get; set; }

    [DataType(DataType.Date)]
    [Display(Name = "Date Received")]
    public DateTime? SLAReceivedDate { get; set; }
}

dsRegistration のインデックス ビューで、dsExpressionOfInterest から CustomerName フィールドを表示できるようにしたいと考えていますが、これは利用できません。

これを容易にするには、ナビゲーション プロパティをどのように設定すればよいですか?

アップデート

私のコントローラー

public ActionResult Index()
{
    var dsregistration = db.dsRegistration.Include(d => d.Employee).Where(d => d.PackSent == false);

    return View(dsregistration);
}

問題を単純化するために、上記のモデルには示していない他の追加フィールドがあります。

4

2 に答える 2

1

通常のドメイン モデルとは異なる ViewModel を作成します。ViewModel には、ビューに必要なフィールドが含まれている必要があります。おそらく、アクションごとに異なる ViewModel を持つことになります。たとえば、アクションの名前が Index の場合:

public class RegistrationIndexViewModel
{
    public int dsRegistrationID { get; set; }

    [Display(Name = "Expression Of Interest ID")]
    public int dsExpressionOfInterestID { get; set; }

    [Display(Name = "SLA Received")]
    public bool SLAReceived { get; set; }

    [DataType(DataType.Date)]
    [Display(Name = "Date Received")]
    public DateTime? SLAReceivedDate { get; set; }

    [Display(Name = "Customer Name")]
    public string CustomerName { get; set; }
}

ドメイン モデルではなく、ビュー モデルを dsRegistration ビューに渡します。ドメイン モデルはデータベースと連携し、ビジネス ロジックを実行します。ビューモデルはビューに渡されます。

于 2013-07-10T13:47:14.643 に答える