同じページに複数のフォームを表示するビューのビューモデルがあります。このビューモデルには、レンダリングされる各フォームの「サブビューモデル」が含まれています。各フォームには独自のPartialViewがあります。別のクラスから継承したViewModelを使用する部分的なビューは機能しません
これらのフォームはすべて、一連のプロパティ(連絡先情報)を共有しますが、各フォームには別個の追加プロパティセットがあります。だから私は、これらのフォームクラスのそれぞれが基本クラスから継承することが理にかなっていると思った。ただし、URLにアクセスしようとすると、次のエラーが発生します。
辞書に渡さモデル項目タイプ 「MyProject.ViewModels.JobForm」であるが、この辞書 型 「MyProject.ViewModels.NightShiftForm」のモデル項目を必要とします。 '_NightShiftForm' の
メインビュー
<%@ Control Language="C#"
Inherits="ViewUserControl<MyProject.ViewModels.JobsViewModel>" %>
<%: Html.Partial("_NightShiftForm", Model.NightShiftForm) %>
<%: Html.Partial("_DayShiftForm", Model.DayShiftForm) %>
部分図
<%@ Control Language="C#"
Inherits="ViewUserControl<MyProject.ViewModels.NightShiftForm>" %>
ビューモデル&フォームクラス
public class JobsViewModel {
public NightShiftForm NightShiftForm { get; set; }
public DayShiftForm DayShiftForm { get; set; }
}
public class JobForm {
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class DayShiftForm : JobForm {
public string PreferredCoffeeBrand { get; set; }
public bool IsMorningPerson { get; set; }
}
public class NightShiftForm : JobForm {
public string PreferredLocation { get; set; }
public string PreferredNights { get; set; }
}
これはなぜ起こっているのでしょうか?
は、私はあなた 'JobsViewModel'で2つのプロパティはJobForm''タイプのものであり、あなたがここにあなたの質問 'NightShiftForm'と' DayShiftForm'に示されていないようと思われます。あなたの質問にあなたが示したことはうまくいくはずです。 –