i'am используя библиотеку классов для моих моделей и создаю свои контроллеры в области Теперь я хочу использовать удаленную проверку, но она не работает, на самом деле она не отображается.MVC Удаленная проверка не отображается
моя модель в библиотеке моделей класса
[System.ComponentModel.DataAnnotations.RegularExpression(@"(?=.*[a-zA-Z0-9]).{4,20}$", ErrorMessage = "error")]
[System.ComponentModel.DataAnnotations.Required(ErrorMessage = "error")]
[System.Web.Mvc.Remote("UserNameExist","AdminUser","Admin",ErrorMessage="error")]
public string UserName { get; set; }
мой контроллер в админке
[HttpPost]
public JsonResult UserNameExist(string UserName)
{
using (DataBaseContext dbContext = new DataBaseContext())
{
var user = dbContext.Users.SingleOrDefault(current => current.UserName == UserName);
return Json(user == null);
}
}
также я был добавлен JQuery и jquery.validation и jquery.validate.unobtrusive и я был добавлен этим к моему webconfig
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
Обновлено
визуализации HTML является:
<input class="form-control directionEn valid" data-val="true" data-val-regex="error" data-val-regex-pattern="(?=.*[a-zA-Z0-9]).{4,20}$" data-val-required="error" id="UserName" name="UserName" placeholder="User Name" type="text" value="">
там не приписывать для удаленной проверки
пользователя Вид:
@model Models.User
@section Scripts
{
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
}
<div class="row">
<div class="col-lg-6 col-lg-offset-3 col-md-6 col-md-offset-3">
<div class="form-group">
<a class="btn btn-success" href="/Admin/AdminUser/List">List</a>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-lg-offset-3 col-md-6 col-md-offset-3">
<div class="panel panel-default">
<div class="panel-heading">
<h4>Add New User</h4>
</div>
<div class="panel-body">
@using (Html.BeginForm("Add", "AdminUser", null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.Raw(System.Web.HttpUtility.HtmlDecode((Html.ValidationSummary(true, "", htmlAttributes: new { @class = "alert alert-danger" }) ?? (object)"").ToString()))
<div class="form-group">
<label>
UserName
</label>
@Html.TextBoxFor(model => model.UserName, htmlAttributes: new { @class = "form-control directionEn", @placeholder = "User Name" })
@Html.ValidationMessageFor(model => model.UserName, "", htmlAttributes: new { @class = "validationError" })
</div>
}
</div>
</div>
</div>
</div>
, что случилось в моем коде ???
Что визуализируется? (покажите, как генерируется фактический html). И вы должны использовать '[Remote (« UserNameExist »,« AdminUser »,« Admin », ErrorMessage =« error »)]' (см. [Перегрузки] (https://msdn.microsoft.com/en-us/library /system.web.mvc.remoteattribute.remoteattribute(v=vs.118).aspx#M:System.Web.Mvc.RemoteAttribute.)) –
Нет ничего плохого в коде, который вы показали (он генерирует правильные данные -val-remote- * 'атрибуты для меня). Что-то, что вы не показали нам, что это вызывает проблему. –
Я думаю, что использование библиотеки Area или Class для контроллеров и моделей ошибочно, я не знаю, как это исправить. –