Ошибки проверки модели Mvc не отображаются при частичном представлении внутри другого представления

Когда я пытаюсь загрузить частичное представление непосредственно в браузере и отправить его, отображая сообщения об ошибках, но если это же частичное представление находится в другом представлении, оно не показывает проверки ошибок этой модели. чтобы загрузить частичное представление внутри представления, я использую метод Ajax.Beginform.

При загрузке частичного просмотра в браузере введите здесь описание изображения

При включении в другое представление введите здесь описание изображения

Мой частичный вид

@model FPW.FPWClientModels.SiteClientModel
@if (this.ViewContext.FormContext == null)
{
    this.ViewContext.FormContext = new FormContext();
}

    @using (Ajax.BeginForm("CreateSite", "Site", null, new AjaxOptions
    {
        HttpMethod = "POST",
        AllowCache = false,
        ////LoadingElementId = "AjaxOverlay",
        //OnSuccess = "SiteOnSaveSuccess",
        //OnFailure = "SiteOnSaveFailure",
    }, new { @id = "SiteCreateForm" }))
    {
        <div class="modal-body">
            @Html.AntiForgeryToken()            

            <div class="form-group">
                @Html.LabelFor(model => model.SiteName, htmlAttributes: new { @class = "control-label" })
                <div class="col-md-12">
                    @Html.EditorFor(model => model.SiteName, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.SiteName, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.SiteAddress, htmlAttributes: new { @class = "control-label" })
                <div class="col-md-12">
                    @Html.EditorFor(model => model.SiteAddress, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.SiteAddress, "", new { @class = "text-danger" })
                </div>
            </div>


        <div class="modal-footer">
            <div class="form-group">
                <div class="col-md-offset-2 col-md-10">
                    <input type="submit" value="Create" class="btn btn-default" />
                </div>
            </div>
        </div>

    }

    <script>
        function SiteOnSaveSuccess(resp) {            
        }

        function SiteOnSaveFailure(resp) {            
        }
    </script>

Мой контроллер

public ActionResult CreateSite()
    {
        SiteClientModel oSiteClientModel = new SiteClientModel();
        return PartialView(oSiteClientModel);
    }

    //Create Site
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult CreateSite(SiteClientModel oSiteClientModel)
    {
        if (ModelState.IsValid)
        {
            var saveSiteDetails = oSiteApiController.CreateSiteDetails(oSiteClientModel);
            return PartialView(saveSiteDetails);
        }
        else
        {
            oSiteClientModel.ReturnValue = new ReturnValue { IsSuccess = false, ReturnType = ReturnType.Error, Message = "Form Not Valid" };
        }
        return PartialView("CreateSite",oSiteClientModel);
    }

person ThusharaHettigoda    schedule 20.01.2020    source источник
comment
на вашей второй странице у вас есть ссылки на jquery.validate и jquery.validate.unobtrusive?   -  person LinkedListT    schedule 20.01.2020
comment
все проверки потребностей jquery размещены в макете   -  person ThusharaHettigoda    schedule 21.01.2020
comment
Как вы называете это частичное представление?   -  person LinkedListT    schedule 21.01.2020


Ответы (1)


Нашел ошибку. Он не использовался Обновить идентификатор цели в опции ajax. После использования UpdateTargetId и указания на идентификатор формы он работает нормально, как и ожидалось.

person ThusharaHettigoda    schedule 21.01.2020
comment
Не могли бы вы изучить свой ответ. Сейчас я столкнулся с той же проблемой, и даже добавление UpdateTargetId не решило мою проблему. - person Sowdhanya; 29.09.2020