我正在使用asp.net mvc Web应用程序,我有一个文本输入字段来输入搜索条件,但我的问题是我如何定义这个字段是必需的,只需用户点击搜索按钮。我正在考虑手动添加以下数据短划线属性,以模拟[Required]模型数据注释的工作方式。
<input name="selectedUserNames" type="text" data-val="true" data-val-required= "Please enter a value." data-autocomplete-source= "@Url.Action("AutoComplete", "SecurityGroup")" />
<span class="field-validation-valid" data-valmsg-for="selectedUserNames" data-valmsg-replace="true"></span>
<input type="submit" value="Seach" />
答案 0 :(得分:2)
您所做的不是一个干净的解决方案,它只适用于客户端。您应该创建一个如下所示的SearchViewModel并将其传递给您的视图:
public class SearchViewModel
{
[Required]
public string Search { get; set; }
}
并且,在您的视图中:
@Html.TextBoxFor(model => model.Search)
@Html.ValidationMessageFor(model => model.Search)
答案 1 :(得分:0)
如前面的答案中所述,仅启用客户端验证不是一个完整的解决方案。如果客户端在他们的浏览器上禁用了javascript怎么办?然后你的验证想要火。
您拥有的最佳选择是使用DataAnnotation [Required]属性。在您的视图中启用客户端验证。
如果客户端在浏览器服务器端禁用了javascript,则会触发验证。