我正在为我的视图使用客户端验证,并且刚刚创建了一个包含组织对象和地址对象的ViewModel。
我曾经有一个刚刚映射到域实体的ViewModel。在我的域名实体上,我有以下内容:
[NotMapped]
[Remote("ValidOrganisation", "Manage", "Organisations", ErrorMessage = "That organisation doesn't exist")]
public string Organisation { get; set; }
但是,我现在为包含以下内容的视图创建了一个ViewModel:
public class PersonModel
{
public Person Person { get; set; }
public AddressModel Address { get; set; }
}
person对象包含Organization属性。
在我看来,我有以下内容:
<div>
<label for="Organisation">Organisation</label>
<div class="input large">
@Html.TextBoxFor(m => m.Person.Organisation)
<span class="help-block">Type the first letter of the organisation to search</span>
@Html.ValidationMessageFor(m => m.Person.Organisation)
@Html.Hidden("OrganisationID")
</div>
</div>
唯一改变的是:
@Html.TextBoxFor(m => m.Organisation)
为:
@Html.TextBoxFor(m => m.Person.Organisation)
我的远程验证码是:
public JsonResult ValidOrganisation(string organisation)
{
var exists = orgs.SelectAll().Where(o => o.Name.ToLower() == organisation.ToLower()).Count() > 0;
return Json(exists, JsonRequestBehavior.AllowGet);
}
问题是现在总是传入NULL,它总是返回false。
这是否与现在更改为Person.Organisation的Organization属性有关?
答案 0 :(得分:1)
1]打开您的视图页面源并查看
的ID渲染内容@Html.TextBoxFor(m => m.Person.Organisation)
2]并在方法中重命名组织以接受相同的ID我希望它是 Person_Organisation
public JsonResult ValidOrganisation(string organisation)
使用以下
public JsonResult ValidOrganisation(string Person_Organisation)