ASP.NET MVC 3 Удаленная проверка перестала работать - PullRequest
0 голосов
/ 19 января 2012

Я использую проверку на стороне клиента для своих представлений и только что создал 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.

Это как-то связано с тем, что свойство Organization теперь меняется на Person.Organisation?

1 Ответ

1 голос
/ 19 января 2012

1] Откройте исходный вид страницы просмотра и посмотрите, что Id рендерит для

@Html.TextBoxFor(m => m.Person.Organisation)

2] и переименуйте организацию в методе для принятия того же идентификатора. Я ожидаю, что он будет Персона_Организация

public JsonResult ValidOrganisation(string organisation)

используйте ниже

public JsonResult ValidOrganisation(string Person_Organisation)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...