「パブリケーション」と呼ばれるモデルがあり、その中に「パブリッシャー」と呼ばれる別のモデルがあります。
public class Publication
{
public int PublicationID { get; set; }
public Publisher Publisher { get; set; }
}
public class Publisher
{
public int PublisherID { get; set; }
[Required]
public string Name { get; set; }
}
そのため、データベースから出版物のデータを取得するときは、必要に応じて各出版物の発行者情報も入力します。
別のパブリケーションを追加するときは、パブリッシャーを選択する必要があります。これは必須フィールドです。ユーザーがそのパブリケーションのパブリッシャーを選択できるように、すべてのパブリッシャーを含むページに DropDownList があります。
<div>
@HtmlDropDownListFor(model => model.Publisher.PublisherID, myPublisherList)
</div>
そして、それはデータを完全にうまく埋めていますが、次の行でエラーが発生しています:
if(ModelState.IsValid)
発行者の名前が指定されていないため、ID のみが必要ですが。Model.IsValid 行を削除したくないのは、検証が必要なフィールドが他にもたくさんあるためです。できるだけきれいなままにしておきたいので、名前の値を入力する簡単な方法はありますか?
隠しフィールドを追加し、ユーザーが選択を変更するたびに Javascript を使用して値を入力することを考えましたが、可能であれば、よりクリーンで JavaScript を使用しないアプローチを使用したいと考えています。
ありがとう!