验证MVC中的电子邮件字段文本框

时间:2015-04-16 14:14:48

标签: c# html model-view-controller

我有一个看起来像这样的窗口 -

enter image description here

每当我点击' +'它在下面添加了一行 -

enter image description here

和' - '删除该行。

正如您所看到的,该字段未经过验证,即使未输入任何内容,也会添加该行。我编写的代码分布在两个文件中。

InviteUser.cshtml

@using (Ajax.BeginForm("AddUser", "ManageUsers", new { area = "AccountAdmin" }, new AjaxOptions() { HttpMethod = "POST", OnFailure = "onCallFailure(data);", OnSuccess = "onCallSuccess(data);", UpdateTargetId = "inviteUserContainer" }, new { id = "form1" }))
{
    <div id="items">
        @{
            if (Model != null)
            {
                foreach (var item in Model)
                {
                    Html.RenderPartial("inviteUserEditor", item);
                }
            }
            else
            {
                Html.RenderAction("BlankInviteUserEditor", "ManageUsers", new { area = "AccountAdmin" });
            }
        }
    </div>

此文件运行循环和

InviteUSerEditor.cshtml

<div class="rowcontainer7">
<input type="hidden" name="@(ViewData["prefix"] + ".index" )" value="@(model.Id )" />
@Html.Hidden((string)(fieldPrefix + "Id"), (int)ViewData.Model.Id)



@Html.TextBox(((string)fieldPrefix + "Email"), (string)ViewData.Model.Email, new { @class = "form-control vsminput3 " + (string.IsNullOrEmpty(model.Message) ? "" : "input-validation-error"), placeholder ="Email" })

@Html.DropDownList((string)(fieldPrefix + "GroupId"), model.Groups.Select(x => new SelectListItem() { Value = x.Id.ToString(), Text = x.GroupName, Selected = (model.GroupId == x.Id) }),"--Select Group--", new { @class = "form-control vsmselect3 vsminline2" })


<a href="#" class="removeRow btn btn-blue btn_inline" role="button" onclick="deleteContainer(event)"> -</a>

这具有文本框和下拉列表的基本结构。 虽然,我试着验证这个领域,但我并没有成功。如果&#39; +&#39;单击它不应该添加一行,如果没有输入或选择任何内容,文本框和下拉菜单应该变为红色,并带有一些弹出消息。

另外需要提及的是,此文本框没有创建模型。因此,我必须在客户端本身进行验证。我现在很长一段时间都在努力解决这个问题。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:-1)

您有两个选项,客户端和服务器端验证

客户端

$('#plusButtonId').on('click', function() {
 if ($('#inputId').val() == '') {
  //display error message etc..
 } else {
  //add new row
 }
});

服务器端可以简单地检查模型状态是否有效

//for server side to kick in, you would need to be hitting the server
//i.e doing an ajax call to load a new row
if (ModelState.IsValid) {
 //handle the request
}