2

我在我的 asp.net mvc Web 应用程序中有以下视图:-

@using (Ajax.BeginForm("CheckUserPermision", "SecurityRole", 
new AjaxOptions
{
    HttpMethod = "get",
    InsertionMode = InsertionMode.Replace,
    LoadingElementId = "progress2",
    UpdateTargetId = "userSecurityRole"
}))
{


  <div>
    <span class="f">User Name </span> 
        <input  name="username" 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="username" data-valmsg-replace="true"></span>

</div>

目前,除非在“用户名”字段中输入文本,否则用户将无法进行搜索。但我的问题是天气使用data-val="true“强制要求字段验证的正确方法?

4

2 回答 2

1

没有。只需为此使用 ViewModel。

public class SearchNameViewModel
{   
   [Required]
   public string UserName { get;set; }

}

看法

@model SearchNameViewModel
@using (Ajax.BeginForm("CheckUserPermision", "SecurityRole", 
new AjaxOptions
{
    HttpMethod = "get",
    InsertionMode = InsertionMode.Replace,
    LoadingElementId = "progress2",
    UpdateTargetId = "userSecurityRole"
}))
{


  <div>
    @Html.LabelFor(x => x.UserName)
    @Html.TextBoxFor(x => x.UserName,
     new { data_autocomplete_source = Url.Action("AutoComplete", "SecurityGroup") })
    @Html.ValidationMessageFor(x => x.UserName)
</div>
于 2013-11-03T21:49:25.327 回答
1

一个是客户端验证,另一个是服务器端。适当的安全编码标准会让您同时使用两者。服务器端验证(视图模型数据注释)更安全,但是客户端验证允许您在发送请求之前发现问题。

于 2015-01-25T16:30:21.893 回答