У меня есть панель навигации в моем _layout, которая содержит раскрывающийся список, внутри этого раскрывающегося списка отображается частичное представление (содержащее форму входа в систему), несмотря на наличие скриптов проверки JQuery (через конфигурацию пакета), и моя модель имеет правильный аннотации данных, входные данные формы не будут проверяться, однако, если частичное отображается в теле, проверка работает нормально.
Я предполагаю, что что-то в макете (или, возможно, в форме выпадающего списка) вызывает проблему.
Важные биты моего макета ...
@Scripts.Render("~/bundles/jquerybase")
@Scripts.Render("~/bundles/jqueryajax")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/bootstrap")
@Styles.Render("~/Styles/bootstrap")
@Styles.Render("~/Styles/css")
<nav class="navbar navbar-inverse navbar-fixed-top" id="MainNavbar">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">Logo</a>
</div>
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
</ul>
<ul class="nav navbar-nav navbar-right float-right">
@if (!User.Identity.IsAuthenticated)
{
<li>
<a href="#" class="dropdown-toggle" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="glyphicon glyphicon-log-in"></span> Login
</a>
<div class="dropdown-menu" id="dropdownLogon">
@Html.Partial("~/Views/User/Logon.cshtml", new SiteProject.Models.UserModel())
</div>
}
</li>
</ul>
</div>
</nav>
Мое частичное представление:
@model SiteProject.Models.UserModel
@using (Html.BeginForm("Logon", "User", FormMethod.Post, new { htmlAttributes = new { Id = "logonForm", name = "logonForm" } }))
{
@Html.AntiForgeryToken()
<form class="px-4 py-3">
<div class="form-group">
@Html.Label("Username", htmlAttributes: new { id = "UserNameLabel" })
@Html.EditorFor(m => m.UserName, new { htmlAttributes = new { id = "Username", @class = "form-control", } })
@Html.ValidationMessageFor(m => m.UserName, "", new { @class = "text-danger" })
</div>
<div class="form-group">
@Html.Label("Password", htmlAttributes: new { id = "PasswordLabel" })
@Html.EditorFor(m => m.Password, new { htmlAttributes = new { @type = "password", id = "Password", @class = "form-control", } })
@Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger" })
</div>
<button type="submit" class="btn btn-primary">Sign in</button>
</form>
<br />
<div class="dropdown-divider"></div>
<div>
<a class="dropdown-item" href="#">Forgot password?</a>
</div>
}
Может ли кто-нибудь пролить свет на то, почему и каким будет решение.
Спасибо.