0

我正在使用 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" />
4

2 回答 2

2

你正在做的不是一个干净的解决方案,它只适用于客户端。您应该创建一个如下所示的 SearchViewModel 并将其传递给您的视图:

public class SearchViewModel
{
    [Required]
    public string Search { get; set; }
}

而且,在您看来:

@Html.TextBoxFor(model => model.Search)
@Html.ValidationMessageFor(model => model.Search)
于 2013-07-16T23:01:53.503 回答
0

如上一个答案所述,仅启用客户端验证并不是一个完整的解决方案。如果客户在他们的浏览器上禁用了 javascript 怎么办?那么你的验证想要火。

最好的选择是使用 DataAnnotation [Required] 属性。在您的视图中启用客户端验证。

如果客户端在浏览器服务器端禁用 javascript,验证将触发。

于 2013-07-17T03:13:38.873 回答