我有一个表单,我想在其中一个@ 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,但仍然没有结果。
由于
答案 0 :(得分:1)
Guid
是一种行为简单类型的结构(就像int
或DateTime
)。因此,它是自动验证的。如果您想要解决方法,请将您的媒体资源类型从Guid
更改为可以为Guid?
。例如:
public System.Guid? SchoolGroupKey { get; set; }
当然,您在使用此属性时必须更改位置,以便通过可空类型的Value
属性访问guid值。
如果映射失败,那么您将不会收到任何验证错误 - 只有null
属性中的SchoolGroupKey
值。