【发布时间】:2011-08-05 07:54:42
【问题描述】:
我使用 MVC 3 和 razor 作为视图引擎并启用了不显眼的客户端验证。
我正在尝试创建一个表单,其中用户有一个单选按钮组来选择他们首选的联系方式 - 电话或电子邮件。根据选择的选项,我想显示适当的文本框,然后还为适当的文本框启用/禁用所需的验证器。
我的标记目前看起来像这样(刚开始使用 MVC,所以请指出任何明显的错误):
<div id="prefferedContact">
<p>Preferred Contact Method *</p>
<input type="radio" id="contactMethodEmail" name="PreferredContactMethod" value="email" @if (Model.PreferredContactMethod != "phone"){<text>checked="checked"</text>} /> <label for="contactMethodEmail">by email</label>
<input type="radio" id="contactMethodPhone" name="PreferredContactMethod" value="phone" @if (Model.PreferredContactMethod == "phone"){<text>checked="checked"</text>} /> <label for="contactMethodPhone">by phone</label>
</div>
<div id="contactMethodDetails" class="formItem">
<div id="emailAddressBox">
@Html.LabelFor(x => x.Email, "Email address")
@Html.TextBoxFor(x => x.Email, new { @class = "textbox" })
</div>
<div id="phoneNumberBox">
@Html.LabelFor(x => x.PhoneNumber, "Phone number")
@Html.TextBoxFor(x => x.PhoneNumber, new { @class = "textbox" })
</div>
</div>
</div>
</div>
有一些 jquery 函数可以向单选按钮添加一个 onclick 事件,以根据所选值在两个框之间切换。
模型 - 对于这些特定字段 - 目前没有任何必需的验证,但绑定很好。此外,验证正在按预期处理其他领域
我真的只需要了解一下:
(a) 是否可以打开和关闭验证
(b) 这是否会影响 ModelState 验证(或者我是否需要对其进行自定义)
我也曾想过为联系人数据设置一个文本框,但我想分别对电子邮件和电话号码进行正则表达式验证。如果我只有一个文本框,我可以根据所选选项切换文本框上的验证规则吗???
希望信息足够清楚。
谢谢
乔尔
【问题讨论】:
标签: validation asp.net-mvc-3 razor