1

「パブリケーション」と呼ばれるモデルがあり、その中に「パブリッシャー」と呼ばれる別のモデルがあります。

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 を使用しないアプローチを使用したいと考えています。

ありがとう!

4

1 に答える 1