1

我有一个表单,我想在其中禁用 @Html.TextBox 元素之一所需的验证。前端如下:

@model Models.NewUser

@using (Html.BeginForm("Register", "Account"))
{
    <div class="field">
        <span class="textOverField absolute em1-2" style="top:6px;left:4px;">Key</span>
        @Html.TextBox("SchoolGroupKey", "", new { @class = "textField" }) 
    </div>
    <div class="field">
        <span class="textOverField absolute em1-2" style="top:6px;left:4px;">Name</span>
         @Html.TextBox("Names", "", new { @class = "textField" }) <div class="absolute validationMessage">@Html.ValidationMessageFor(u => u.Names)</div>
    </div>
    <div class="field">
        <span class="textOverField absolute em1-2" style="top:6px;left:4px;">Last Name</span>
        @Html.TextBox("LastNames", "", new { @class = "textField" }) <div class="absolute validationMessage">@Html.ValidationMessageFor(u => u.LastNames)</div>
    </div>
    <div class="em0-9" style="margin-bottom:20px;">
        <input class="submitButton cursorHand" style="margin-top:10px;" type="submit" value="Registrarme" />
    </div>
}

该模型的代码如下:

public class NewUser
{
    [Required(ErrorMessage = "Name required")]
    public string Names { get; set; }

    [Required(ErrorMessage = "Last name required")]
    public string LastNames { get; set; }

    public System.Guid SchoolGroupKey { get; set; }
}

我猜 @Html.TextBox 有一个默认验证,即使我没有指定它。有没有办法删除它?,我尝试删除 html 标签 data-val-required 和 data-val,但仍然没有结果。

谢谢

4

1 回答 1

1

Guid是一个表现为简单类型的结构(就像intor DateTime)。因此,它会自动验证。如果您想解决方法,请将您的属性类型从更改Guid为 nullable Guid?。例子:

public System.Guid? SchoolGroupKey { get; set; }

当然,当您使用该属性时,您必须更改位置,以通过Value可为空类型的属性访问 guid 值。

如果映射失败,那么您将不会收到任何验证错误 - 只是null在您的SchoolGroupKey属性中设置值。

于 2012-08-03T23:07:03.773 回答