Удаленная проверка не выполняется - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь использовать удаленную проверку, чтобы убедиться, что вход имеет значение, но только когда предыдущий вход имеет конкретное значение.Однако удаленная проверка не выполняется.

Я поставил точку останова на действие удаленной проверки в контроллере, и это никогда не выполняется.

Это в моей модели:

[Remote("_Validate_Show", "Validation", AdditionalFields = "Group_Id,Dev_Group_Id", ErrorMessage = "Please select an option")]
public bool? Show { get; set; }

Это мой контроллер:

public class ValidationController
    {
        public JsonResult _Validate_Show(bool? Show, Guid? Group_Id, Guid Dev_Group_Id)
        {
            if (!Show.HasValue && Group_Id.HasValue && Group_Id == Dev_Group_Id)
            {
                return base.Json(false, JsonRequestBehavior.AllowGet);
            }
            return base.Json(true, JsonRequestBehavior.AllowGet);
        }
    }

И это то, что у меня есть в моем представлении:

<div>@Html.ExtendedDropDownListFor(model => model.Group_Id, Model.Group_Ids)</div>

<div>@Html.DropDownListFor(model => model.Show, Model.Show_Options)</div>
<div>@Html.ValidationMessageFor(model => model.Show)</div>

В основном, если 'Group_Id' равен 'Dev_Group_Id'then' Show 'должно иметь значение, но если' Group_Id 'не равен' Dev_Group_Id ', тогда' Show 'может быть нулевым.

Я даже пытался упростить его и удалить дополнительные поля, поэтому он только что проверилзначение 'Show', но опять-таки действие в контроллере никогда не было выполнено.

Я также могу подтвердить, что у меня есть эти сценарии в моем представлении:

<script src="@Url.Content("~/Scripts/jquery.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>

1 Ответ

0 голосов
/ 05 апреля 2019

Ваш _Validate_Show только для получения, а удаленная проверка использует почту.Добавьте [AcceptVerbs("Get", "Post")] к методу, а именно:

[AcceptVerbs("Get", "Post")]
public JsonResult _Validate_Show(bool? Show, Guid? Group_Id, Guid Dev_Group_Id)
        {
            if (!Show.HasValue && Group_Id.HasValue && Group_Id == Dev_Group_Id)
            {
                return base.Json(false, JsonRequestBehavior.AllowGet);
            }
            return base.Json(true, JsonRequestBehavior.AllowGet);
        }
...