C# 如何使Html.ListBoxFor成为必需的

C# 如何使Html.ListBoxFor成为必需的,c#,html,asp.net-mvc,C#,Html,Asp.net Mvc,我知道我可以在HTML页面中添加所需的felid,使DropDownListFor成为required,如下所示: @Html.DropDownListFor(m => m.Site_idSite, Model.GetSiteList(Model.idCompany), new { @class = "w_300p", required = "required" }) 我的问题是如何制作ListBoxFor required @Html.ListBoxFor(m => m.Sel

我知道我可以在HTML页面中添加所需的felid,使DropDownListFor成为required,如下所示:

@Html.DropDownListFor(m => m.Site_idSite, Model.GetSiteList(Model.idCompany),  new { @class = "w_300p", required = "required" })
我的问题是如何制作ListBoxFor required

@Html.ListBoxFor(m => m.SelectedSites, Model.GetSiteList(Model.idCompany), new { @class = "w_250p", Size = "4" })

任何帮助都将不胜感激。这个问题困扰了很长时间。

您能尝试一下服务器端验证吗

public class ProgramViewModel
    {
        [Required(ErrorMessage = "Please select at least one company")]
        public IEnumerable<string> YourCompanyIdList{ get; set; }
    }
公共类程序视图模型
{
[必需(ErrorMessage=“请至少选择一家公司”)]
公共IEnumerable YourCompanyId列表{get;set;}
}
此外,如果要启用客户端验证,可以使用以下参考:

您需要自定义验证器请参见:
required=“required”
是HTML5验证,仅限于客户端-您必须始终在服务器上进行验证。将
[必需的]
属性与
@Html.ValidationMessageFor()
一起用于
Site\u idSite
属性。对于
SelectedSites
,您需要编写一个实现
IClientValidable
(上面的链接仅限于服务器端)的自定义验证属性。您是否解决了问题?否。实际上,若您在模型中为特定视图标记required,就可以实现这一点。然而,我的要求是,只有当它满足if条件时,我才必须将其标记为所需,这样我才能在模型中标记[required]。