【发布时间】:2013-08-07 20:16:20
【问题描述】:
我正在尝试使用 RemoteAttribute 来验证使用 JSON 的数据元素服务器端。 我的数据字段是:
[Display(Name = "My Number")]
[Required]
[Remote("IsValidMyNumber","Home",ErrorMessage="Bummer")]
public string MyNumber { get; set; }
我的控制器是:
public JsonResult IsValidMyNumber(string MyNumber)
{
var test = services.ValidateMyNumber(MyNumber);
return Json(test,JsonRequestBehavior.AllowGet);
}
我的看法是:
<div class="editor-field">
@Html.EditorFor(model => model.CheckInformation.MyNumber)
@Html.ValidationMessageFor(model => model.CheckInformation.MyNumber)
</div>
生成的 HTML 是:
<input class="text-box single-line" data-val="true" data-val-remote="Bummer"
data-val-remote-additionalfields="*.MyNumber" data-val-remote-url="/Home/IsValidMyNumber"
data-val-required="The Number field is required." id="CheckInformation_MyNumber"
name="CheckInformation.MyNumber" type="text" value="" />
当我调试并进入我的控制器时,“MyNumber”参数为空,即使我在它所代表的文本框中有文本。
我知道文本框中的名称必须与参数中的名称相同,并且我已经验证了这一点。
有什么想法吗?
【问题讨论】:
-
请发布
MyNumber文本框生成的html 是什么样子的! -
刚刚添加了HTML代码。
-
您使用的是哪个版本的 asp.net mvc?您可能遇到了这里解释的相同错误:stackoverflow.com/a/8376646/872395。您可以从 nuget 更新您的
jquery.validate.unobtrusive.js,也可以应用链接问题中的修复程序。 -
据我所知,您有 CheckInformation.MyNumber,CheckInformation 是您的模型吗?我认为@nemesv 正在寻找您的视图的外观?我认为更详细的代码示例可能会有所帮助。
-
我添加了查看代码
标签: asp.net-mvc data-annotations