0

データベースから検証する必要があるユーザーが取り込まれた ListBoxFor ヘルパーがあります。1 人のユーザーをクリックしてから、送信ボタンをクリックします。これは正常に機能し、db の管理者検証済みビットを true に設定します。

しかし、私がやろうとしているのは、クリックされたリスト内の項目、値が自動的にポストバックされた後、テキストエリアにユーザーの説明を入力することです。私は AJAX を使用する予定ですが、このように HTMLHelpers で AJAX を使用することに関する適切なドキュメントを入手するのは難しいと感じています。

編集: 提案に従って、モデル、ビュー、およびコントローラーを更新しました。

モデル:

public class UserAdminVerifyModel
{
    public SelectList ToBeVerifiedAdmin { get; set; }
    public string[] SelectedUsers { get; set; }
    public List<string> userdesc { get; set; }
}

コントローラ:

    public ActionResult AdminVerifyListBox()
    {
        UserAdminVerifyModel verifusermodel = new UserAdminVerifyModel();
        verifusermodel.ToBeVerifiedAdmin = GetUsersToBeVerified();
        return View(verifusermodel);            
    }

意見:

@using (Html.BeginForm("AdminVerifyListbox", "UserRegLog"))
{
@Html.ListBoxFor(x => x.SelectedUsers, Model.ToBeVerifiedAdmin)
<br /> 
<input type="submit" value="Submit" title="submit" />
}
}
4

1 に答える 1

1

ListBoxFor は、複数選択リストを生成するために使用されます。これは、単純な文字列プロパティにバインドしてはならないことを意味します。文字列の配列を使用する必要があります。

public class UserAdminVerifyModel
{
    public SelectList ToBeVerifiedAdmin { get; set; }
    public string[] SelectedUsers { get; set; }
    public List<string> userdesc { get; set; }
}

ビューで ListBoxFor を SelectedUsers コレクション プロパティにバインドします。

@using (Html.BeginForm("AdminVerifyListbox", "UserRegLog"))
{
    @Html.ListBoxFor(x => x.SelectedUsers, Model.ToBeVerifiedAdmin)
    <br /> 
    <input type="submit" value="Submit" title="submit" />
}

また、あなたToBeVerifiedAdminはすでに SelectList です。ビューでコンストラクターをもう一度呼び出すべきではありません。ToBeVerifiedAdminこれは、情報が保存されている場所からこのプロパティを設定するコントローラー アクションで行う必要があります。

于 2013-06-14T10:47:06.847 に答える