Не удается увидеть ошибки проверки при частичном просмотре

Имеет частичное представление, содержащее форму, но не может появиться ошибки проверки.

модели

public class HomeModel
{
    public LoginModel LoginModel { get; set; }
}

public class LoginModel
{
    [Required]
    [Display(Name = "Email")]
    public string Username { get; set; }

    [Required]
    public string Password { get; set; }
}

Index.cshtml:

@model MyApp.Models.HomeModel

@{                
    await Html.RenderPartialAsync("_LoginPartial", Model.LoginModel);
}

HomeController

public IActionResult Index()
{
    return View(new HomeModel()
    {
        LoginModel = new LoginModel()
    });
}        

[HttpPost]
public IActionResult Login(LoginModel model)
{
    return View("Index", new HomeModel()
    {
        LoginModel = model
    });
}

_LoginPartial

@model MyApp.Models.LoginModel
<form asp-action="Login" asp-controller="Home" method="post" role="form" style="width:70%;margin: 0 auto;">
    <div style="display:none" asp-validation-summary="ValidationSummary.All" class="alert alert-danger fade in">
        <a href="#" class="close" data-dismiss="alert">&times;</a>
        <strong>Error!</strong> A problem has been occurred while submitting your data.
    </div>
    <div class="form-group" style="text-align:left">
        <label asp-for="Username" style="font-size:22px;" class="control-label"></label>
        <input asp-for="Username" type="text" class="form-control" />
    </div>
    <div class="form-group" style="text-align:left">
        <label asp-for="Password" style="font-size:22px;" class="control-label"></label>
        <input asp-for="Password" type="password" class="form-control" />
    </div>
    <div class="spacer-15"></div>
    <div class="form-group" style="font-size:22px;">
        <button type="submit"
                style="background-color: Transparent;
                        background-repeat:no-repeat;
                        border: none;
                        cursor:pointer;
                        overflow: hidden;
                        outline:none;" value="Login">
            <img src="~/images/flower.png" />Next
        </button>
    </div>
</form>

1 ответ

Решение

Похоже, вам не хватает нескольких вещей. Каждому из ваших входных данных потребуется соответствующий элемент проверки, который использует asp-validation-for.

<div class="form-group" style="text-align:left">
    <label asp-for="Username" style="font-size:22px;" class="control-label"></label>
    <input asp-for="Username" type="text" class="form-control" />
    <span asp-validation-for="Username" class="text-danger"></span>
</div>

Аналогичным образом, если вы планируете использовать проверку jQuery, вам следует добавить следующее в элементы среды в вашем файле _Layout.cshtml.

<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
Другие вопросы по тегам