stackoverflow.com/questions/3544663/...

оя оригинальная страница создания (без вложенности) - проверка клиента работает

@model TennisClub.ViewModels.ClubMember.EditorModel
@{
    ViewBag.Title = "New Club Member";
    ViewBag.LegendTitle = "Club Member";
}
<h2>@ViewBag.Title</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm())
{
    @Html.ValidationSummary(true, "Errors were found on the form. Please correct all errors and try again.")
    <fieldset>
        <legend>@ViewBag.LegendTitle</legend>
        @Html.EditorForModel()
        <p><input type="submit" value="Create" /></p>
    </fieldset>
}
<div>@Html.ActionLink("Back to List", "Index")</div>

Вот моя новая страница Создать (вложенная) - Сбой проверки клиента

@model TennisClub.ViewModels.ClubMember.EditorModel
@{
    Layout = "~/Views/Shared/StandardLayouts/Create.cshtml";
    ViewBag.Title = "New Club Member";
    ViewBag.LegendTitle = "Club Member";
}
@Html.EditorForModel()
@if (ViewBag.CanUserAccessRestrictedContent)

Вот макет (StandardLayouts / Create.cshtml), используемый на вышеуказанной странице

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>@ViewBag.Title</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm())
{
    @Html.ValidationSummary(true, "Errors were found on the form. Please correct all errors and try again.")
    <fieldset>
        <legend>@ViewBag.LegendTitle</legend>
        @RenderBody()
        <p><input type="submit" value="Create" /></p>
    </fieldset>
}
<div>@Html.ActionLink("Back to List", "Index")</div>

обсуждение

Насколько я могу судить, все работает нормально, используя вложенный подход, за исключением проверки клиента. Когда я смотрю на исходный код страницы, там есть ссылки на сценарии (validate и validate.unobtrusive), но в html атрибуты проверки не отображаются. Если я не использую вложенные макеты, там есть и ссылки на сценарии, и атрибуты проверки.

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

Вопросов

Есть ли что-то неправильное в том, как я делаю раскладку макета? Кажется, это работает нормально, за исключением этой проблемы, но, возможно, я делаю вещи нестандартным способом.

Есть ли параметр в файле web.config или где-то еще, который мне нужно изменить, чтобы проверка клиента работала для страниц, вложенных более чем на один уровень?

Это ошибка в ASP.NET MVC, о которой я должен сообщить в Microsoft?

Ответы на вопрос(1)

Ваш ответ на вопрос