【发布时间】:2011-05-05 22:33:10
【问题描述】:
我有一个人模型
public class Person
{
public int ID { get; set; }
[Required]
[Remote("UserNameExists", "People", "Username is already taken.")]
public string Name { get; set; }
[Required]
public string LastName { get; set; }
}
这是我的 UserNameExists 方法
public JsonResult UserNameExists(string name)
{
bool exists = personRepository.GetPersonByName(name.Trim());
if (!exists)
return Json(true, JsonRequestBehavior.AllowGet);
return Json(string.Format("{0} is not avavfddvilable.", name),
JsonRequestBehavior.AllowGet);
}
当我启用 Javascript 时,它工作得很好,但是当我禁用 javascript 时,此规则不会强制执行...
这是为什么?
请帮忙。
针对预期行为进行编辑:
根据msdn,即使没有Javacript,它也应该遵守这条规则
- (可选)在浏览器中禁用客户端脚本,再次运行页面, 并输入违反 验证约束。
当您离开包含 无效数据,您看不到 验证错误,因为脚本是 禁用。因为 ASP.NET MVC 正在使用 不显眼的 JavaScript,你看不到 客户端脚本错误。然而, 执行服务器端验证 当您提交表单时。 (它是一个 测试您的 Web 的良好实践 具有浏览器的应用程序 禁用脚本。)
【问题讨论】:
标签: c# asp.net-mvc-3 validation remote-validation