繁体   English   中英

MVC远程验证正在向网址添加模型

[英]MVC Remote validation is adding model to url

我在一个字段上进行了远程验证,并且触发了该错误,但是我收到一个500错误,说该参数在控制器方法为null时为null。 实际发生的是将模型名称添加到url中,这使其无法找到该方法。

例:

学生模型

    [Remote("CheckExistingStudent", "Student", AdditionalFields = "FirstName", ErrorMessage = "This student already exists!")]
    public string LastName { get; set; }
    public string FirstName { get; set; }

由于某些原因,验证触发时创建的URL是:

http://localhost:4855/Student/CheckExistingStudent?Student.LastName=Waters&Student.FirstName=Nigel

注意学生。 在网址中。

我尝试了几种不同的方法签名:

    public JsonResult CheckExistingResource(string FIrstName, string LastName)

    public JsonResult CheckExistingResource(StudentModel model)

第一个返回500错误(空参数)。 第二个通过Student模型的人进入方法,但是第一个和最后一个为空。

我确定这是因为我正在使用Html.BeginCollectionItem帮助程序来构建动态列表,以便用户可以在同一页面上输入多个学生。 BCI帮助程序的一部分是,它使用唯一索引来重命名每个字段。

因此,我认为我无法阻止URL具有模型。 在里面。 有可能有模型。 在方法参数名称中? 我试过了,它出错了。

也许模型绑定前缀是按顺序排列的:

public JsonResult CheckExistingResource([Bind(Prefix="Student")]StudentModel model)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM