0

次のコードを使用して、教師が、教えることができるコースのドロップダウン リストを名前別に表示できるようにします。教師がドロップダウン オプションを選択すると、選択したコースを表すデフォルト値がビューのフォームに自動入力されるようにしたいと考えています。フィールドに入力する最も効率的な方法は何ですか?

注:ドロップダウンで「カスタム」を選択した場合、ドロップダウンの下に表示されるフォームには空白だけが必要です。

コースコントローラー

    // GET: /Course/ApplyToTeach

    public ActionResult ApplyToTeach()
    {
        var course = db.CourseTemplates;
        var model = new ApplyCourseViewModel
        {
            Courses = course.Select(x => new SelectListItem
            {
                Value = x.Title,
                Text = x.Title,
            })
        };
        return View(model);
    }

ApplyToTeachViewModel

public class ApplyToTeachViewModel
{
    [Display(Name = "selected course")]
    public string SelectedCourse { get; set; }
    public IEnumerable<SelectListItem> Courses { get; set; }
}

ApplyToTeach (ビュー) - 現在ここにあるのはドロップダウン メニューだけであることに注意してください。このドロップダウンの下に自動入力フォームを追加する最も効率的な方法を探しています。

<h2>ApplyToTeach</h2>

@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Apply To Teach</legend>
        <div class="editor-label">
            Which class would you like to teach? (select "Custom" if you would like to submit a customized class)
        </div>

        <div class="editor-field">
            @Html.DropDownListFor(x => x.SelectedCourse, Model.Courses, "Custom")
            @Html.ValidationMessageFor(model => model.Courses)
        </div>
        <p>
            <input type="submit" value="Submit" />
        </p>
    </fieldset>
}

ドロップダウン フィールドのデータは、次のモデルから取得されます - CourseTemplates

public class CourseTemplates
{
    public int CourseTemplatesID { get; set; }
    public string Title { get; set; }
    public int Credits { get; set; }
    public int AttendingDays { get; set; } // 10, 8, 3, or custom
    public int AttendanceCap { get; set; } // default of 30
    public string Location { get; set; }
    public string Description { get; set; }
}

フォームは実際には「CourseTemplates」モデルではなく「Course」モデルとして送信されます。「Course」モデルには、「CourseTemplates」モデルよりも多くのデータ フィールドがあります。たとえば、次のようになります。

public DateTime StartDate { get; set; }
public bool Approved { get; set; }
etc. . .

ユーザーエクスペリエンスに関して私が念頭に置いているのは、ほとんどの教師の申請プロセスを簡単にするために、管理者が事前に調べて、可能なコースオプションをいくつか追加することです(そのため、教師はすべての詳細を入力する必要がありません)。教えることを申し込んだすべてのクラス) ですが、管理者によるレビューのためにコースを送信する前に、教師が情報を編集できるようにしたいと考えています。

任意のヒント?

4

0 に答える 0