0

ユーザーが Web フォームで選択した内容に従って、特定のオブジェクト (CarsCourse) の値を設定する次のコードがあります。

コードは機能しますが、私の同僚は、これは可能な限り最悪の方法であると述べました。しかし、彼は何の提案もできませんでした。

これを達成するためのより良い方法はありますか?

ありがとう

    If Not String.IsNullOrEmpty(tbDisplayName.Text) Then CarsCourse.DisplayName = tbDisplayName.Text
    If Not String.IsNullOrEmpty(tbDescription.Text) Then CarsCourse.Description = tbDescription.Text
    If Not String.IsNullOrEmpty(tbOfficialStartDate.Text) Then CarsCourse.OfficialStartDate = DateTime.Parse(tbOfficialStartDate.Text)
    If Not String.IsNullOrEmpty(tbOfficialEndDate.Text) Then CarsCourse.OfficialEndDate = DateTime.Parse(tbOfficialEndDate.Text)
    If Not String.IsNullOrEmpty(tbBtmDatepicker1.Text) Then CarsCourse.VisibleStartDate = DateTime.Parse(tbBtmDatepicker1.Text)
    If Not String.IsNullOrEmpty(tbBtmDatepicker2.Text) Then CarsCourse.VisibleEndDate = DateTime.Parse(tbBtmDatepicker2.Text)
    If Not String.IsNullOrEmpty(ddlDepartment.SelectedValue) Then CarsCourse.SecondarySpecialtyName = ddlDepartment.SelectedValue
    If Not String.IsNullOrEmpty(ddlOptionType.SelectedValue) Then CarsCourse.OptionType = ddlOptionType.SelectedValue
    If Not String.IsNullOrEmpty(ddlOfficialName.SelectedValue) Then CarsCourse.OfficialCourseID = Guid.Parse((ddlOfficialName.SelectedValue))
4

1 に答える 1

2

あなたのコードはあまりうまく設計されていないと思います。これを適切に達成する方法は、状態検証を使用することです。

つまり、プライマリには、オブジェクトの現在の値を保持するフォームがあります。対応するオブジェクトをWebフォームに直接バインドすることをお勧めします。nullまたは空であるかどうかに関係なく、値は実際に設定されます。

ユーザーが[OK]ボタンを押すとすぐに、対応するオブジェクトに対してSave()orValidate()メソッドが実行され、値の有効性がチェックされます。検証が失敗した場合は保存プロセスをキャンセルし、それに応じて入力を更新するようにユーザーに指示します。

于 2013-03-18T16:40:19.950 に答える