ASP.NET MVC 3远程验证停止工作

时间:2012-01-19 11:35:57

标签: asp.net asp.net-mvc validation

我正在为我的视图使用客户端验证,并且刚刚创建了一个包含组织对象和地址对象的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属性有关?

1 个答案:

答案 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)