- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 RemoteAttribute 来验证使用 JSON 的服务器端数据元素。我的数据字段是:
[Display(Name = "My Number")]
[Required]
[Remote("IsValidMyNumber","Home",ErrorMessage="Bummer")]
public string MyNumber { get; set; }
我的 Controller 是:
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="" />
当我调试并进入我的 Controller 时,“MyNumber”参数为空,即使我在文本框中有它代表的文本。
我知道文本框中的名称必须与参数中的名称相同,我已经验证了这一点。
有什么想法吗?
最佳答案
似乎您的输入字段的生成名称是:
name="CheckInformation.MyNumber"
这可能是因为您的 View 模型是您在问题中显示的内容的父模型,并且您使用了以下内容:
@Html.TextBoxFor(x => x.CheckInformation.MyNumber)
因此请确保您已指定此前缀,否则默认模型绑定(bind)器将永远无法再水合这些值:
public ActionResult IsValidMyNumber([Bind(Prefix = "CheckInformation")] string myNumber)
{
var test = services.ValidateMyNumber(myNumber);
return Json(test, JsonRequestBehavior.AllowGet);
}
关于asp.net-mvc - RemoteAttribute 没有将参数传递给操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18112985/
我正在尝试使用 RemoteAttribute 来验证使用 JSON 的服务器端数据元素。我的数据字段是: [Display(Name = "My Number")] [Required]
似乎 ASP.NET MVC 3 中引入的 RemoteAttribute 验证器不会在服务器端进行验证,只能通过 JavaScript 进行验证。如果您在浏览器中关闭 JS,您会发现在模型绑定(bi
假设我有一个像这样的 ViewModel: public class Foo { public int Id { get; set; } public IEnumerable Avai
我正在使用 RemoteAttribute 在我的表单中进行一些自定义验证。为简单起见,我有一个单选组 PrimarySupportingDocument,有 3 个选项。如果是某个选择,远程验证应该
我一直在绞尽脑汁地试图找出为什么 ValidationController 操作没有被触发。 我在项目范围的 web.config 中启用了设置: 我有以下 Controller : [Outpu
我将变量定义为 public class EditModel { [Remote("IsNameAvailable", "Home", ErrorMessage = "Name is in u
我是一名优秀的程序员,十分优秀!