【问题标题】:Postback a single item on a Razor ListBoxFor回发 Razor ListBoxFor 上的单个项目
【发布时间】:2013-06-14 10:37:36
【问题描述】:

我有一个 ListBoxFor 助手,其中填充了必须从数据库验证的用户。我单击单个用户,然后单击提交按钮。这工作正常,并将数据库中的管理员验证位设置为 true。

但是我想要做的是在列表中被点击的一个项目上,一个值自动回传,然后我将用用户描述填充一个文本区域。我知道我将使用 AJAX,但发现很难获得关于以这种方式将 AJAX 与 HTMLHelpers 结合使用的良好文档。

编辑:根据建议更新了模型、视图和控制器。

型号:

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" />
}
}

【问题讨论】:

    标签: asp.net-mvc razor asp.net-ajax html-helper


    【解决方案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 属性。

    【讨论】:

      猜你喜欢
      • 2021-04-25
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      • 2019-04-22
      • 2020-03-15
      • 2012-05-14
      • 2015-10-04
      • 1970-01-01
      相关资源
      最近更新 更多