ASP.Net中的远程validationMVC 3:如何在Action Method中使用AdditionalFields
我一直在使用新的ASP.Net MVC 3 RemoteAttribute发送远程调用一个具有单一参数的操作方法。 现在我想使用AdditionalFields属性传入第二个参数:
[Remote("IsEmailAvailable", "Users", AdditionalFields = "InitialEmail")]
IntialEmail是视图中的隐藏字段。 行动看起来像这样:
public JsonResult IsEmailAvailable( string email, string InitialEmail) { //etc. }
当呈现视图时,隐藏的字段被填充,但是当远程触发Action方法时,该值是一个空string。
我在其他地方见过大小写敏感可能是一个问题,所以我确保了Action方法对于这两个参数都有相同的情况。
还有其他build议吗? 这个附加字段曾经被称为字段。
谢谢,
Beaudetious
奇怪。 它适用于我:
模型:
public class MyViewModel { [Required] [Remote("IsEmailAvailable", "Home", AdditionalFields = "InitialEmail")] public string Email { get; set; } }
控制器:
public class HomeController : Controller { public ActionResult Index() { return View(new MyViewModel()); } [HttpPost] public ActionResult Index(MyViewModel model) { return View(model); } public ActionResult IsEmailAvailable(string email, string initialEmail) { return Json(false, JsonRequestBehavior.AllowGet); } }
视图:
@model AppName.Models.MyViewModel @{ ViewBag.Title = "Home Page"; } <script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script> @using (Html.BeginForm()) { @Html.TextBoxFor(x => x.Email) @Html.ValidationMessageFor(x => x.Email) <input type="hidden" name="InitialEmail" value="foo@bar.com" /> <input type="submit" value="OK" /> }
IIRC在ASP.NET MVC 3 RC2中有一些错误,这个远程validation在RTM中已经修复。
你的隐藏字段必须与你正在validation的字段(如Darin的例子)一样,否则隐藏字段的值将不会作为参数发送到validation操作方法“public ActionResult IsEmailAvailable(string email,string initialEmail )”
函数IsEmailAvailable(string电子邮件,string初始邮件)参数电子邮件应该作为电子邮件,完全相同的物业电子邮件。
- 如何在ASP.MVC中指定多行编辑器的列和行?
- 为什么我不能引用System.ComponentModel.DataAnnotations?
- 用于DataAnnotationvalidation属性的Int或Number DataType
- ASP.Net MVC DisplayFormat
- entity framework代码First Fluent Api:向列添加索引
- entity framework4.1 InverseProperty属性
- 数据注释validation确认密码
- MVC中UIHint属性的用法是什么
- 如何使用DataAnnotations在ASP.NET MVC 2中处理Booleans / CheckBoxes?