1

次のシナリオを実装するにはどうすればよいですか:userProfileアカウントを作成するサインアップ ウィザードが必要です。そのフォームにはcompanyName(必須) があります。次に、それを取得して、テーブルcompanyNameでレコードを開始します。companyInfromationユーザーのサインアップ時にレコードを開始するため、このテーブルのすべての列は null 可能である必要があります。

ユーザーがサインアップすると、会社情報の入力を完了するよう求められるため、会社情報フォームに移動します。

ここに私の質問があります。このフォームに必要な属性を持たせ、ユーザーに必要な情報をすべて入力させるにはどうすればよいですか? (JavaScript だけでなく、modelState の検証も) viewModel について考えましたが、「型 'project.model.companyinformation' を project.model.companyinformationviewmodel' に変換できません」というエラーが大量に発生します。

私はC#、asp.net MVCに非常に慣れていません。以前は簡単な方法で vb.net と asp.net の Web フォームを使用していました。

どんな助けでも大歓迎です。

4

1 に答える 1

1

モデルを作成するのが正しいアプローチです。エンティティからモデルにキャストすることはできません。お客様ご自身でデータを移行していただく必要があります。

var entity = GetEntity();
var model = new MyModelType();
model.ID = entity.ID;
model.OtherField = entity.OtherField;

これを自動化できるAutoMapperという便利なプロジェクトがあります。

別のアプローチは、カスタム検証属性を作成することですRequiredIf。これは、指定されたブール フィールドの値が true であるかどうかを検証します。

public class MyModelType
{
    [NotMapped]
    private bool _enableFullValidation;

    [RequiredIf("_enableFullValidation")]
    public string MyNoneRequiredDBField { get; set; }
}
于 2013-01-15T20:22:39.953 に答える