如何指定需要搜索输入字段

时间:2013-07-16 22:51:38

标签: asp.net-mvc razor

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

2 个答案:

答案 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,则会触发验证。