有时为了在做远程机制时,多使用一个参数,可以加上AdditionalFields字段,该字段可以自定义数据,交给服务器验证。
样例代码:
类:
public class ColumnVM : BaseObj { [Required(ErrorMessage = "请填写栏目的名称"), Remote("CheckColumnName", "Course", ErrorMessage = "已存在相同栏目", AdditionalFields = "ActionMethod")] public string Name { get; set; } public string IsParent { get; set; } public string ParentId { get; set; } public string ImageURL { get; set; } }
控制器:
public JsonResult CheckColumnName(string name, string actionMethod)//actionMethod是为了判断验证的方法是来自哪一个表单 { bool result = false; //不包含文件夹名,则校验成功 ListcolumnNames = columnBLL.GetAll().Select(a => a.Name).ToList(); if (actionMethod == "Edit") { columnNames.Remove(name); } result = !columnNames.Contains(name); return Json(result, JsonRequestBehavior.AllowGet); }
前端:
@using (Html.BeginForm("EditColumn", "Course", FormMethod.Post))//为了方便,本样例只写一个表单,另一个add表单内容相仿。 { @Html.HiddenFor(a => a.Id)
项目 | 详情 |
---|---|
当前目录 | Root> |
课程栏目名称 | @Html.TextBoxFor(model => model.Name, new { @class = "editColumn" }) @Html.ValidationMessageFor(model => model.Name) |
该样例实现依据传过来的方法的不同(是add还是edit),做相应的操作,判断文件名是否存在重复问题。