禁用MVC中@ Html.TextBox的验证

时间:2012-08-03 23:01:09

标签: asp.net-mvc asp.net-mvc-3 razor html.textbox

我有一个表单,我想在其中一个@ 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,但仍然没有结果。

由于

1 个答案:

答案 0 :(得分:1)

Guid是一种行为简单类型的结构(就像intDateTime)。因此,它是自动验证的。如果您想要解决方法,请将您的媒体资源类型从Guid更改为可以为Guid?。例如:

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

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

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