問題の解決策を検索しようとしましたが、失敗しました...
Asp.NET MVC 4 Web アプリケーションに次のようなモデルがあります。
public class ModelBase
{
public string PropertyOne { get; set; }
public string PropertyTwo { get; set; }
}
public class InheritedModelOne : ModelBase
{
public string PropertyThree { get; set; }
}
public class InheritedModelTwo : ModelBase
{
public string PropertyFour { get; set; }
}
コントローラーには 2 つのアクションがあります。
public ActionResult ActionOne([ModelBinder(typeof(MyModelBinder))]ModelBase formData)
{
...
}
public ActionResult ActionTwo(InheritedModelTwo inheritedModelTwo)
{
...
}
私の問題は、ActionTwo の Action パラメーターで「inheritedModelTwo」という名前を使用すると、プロパティ PropertyFour が正しくバインドされますが、ActionTwo の Action パラメーターで formData という名前を使用すると、プロパティ PropertyOne と PropertyTwo が正しくバインドされますが、プロパティ 4。私がやりたいことは、フォームを投稿するときに、ActionTwo メソッドの InheritedModelTwo パラメーターの 3 つのプロパティすべてを正しくバインドすることです。
詳細情報:
- 投稿は同じ JQuery リクエストからのものです。
- post からのデータは、2 つの状況で同じです。
- この問題の唯一の違いは、私の ActionTwo のパラメーター名です。
- ActionTwo のパラメーターに別の名前を指定すると、ModelBase プロパティのみがバインドされます。
- 私の本当に悪い英語でごめんなさい。
わかりました。