Я получаю сообщение об ошибке:
Ресурс не найден.
Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, изменилось его имя или временно недоступен. Пожалуйста, просмотрите следующий URL и убедитесь, что он написан правильно.
Запрошенный URL: / Member / EditMember
Моя Actionlink, которая вызывает метод Edit, выглядит следующим образом:
@Html.ActionLink("Rediger", "EditMember", new { item.MemberID })
И представление, представляющее страницу EditMember:
@using (Html.BeginForm("EditMember", "Member", FormMethod.Post))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.MemberID)
<div class="form-group">
@Html.LabelFor(model => model.FirstName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.FirstName, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.FirstName, "Navn skal angives", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.LastName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.LastName, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.LastName, "", new { @class = "text-danger" })
</div>
</div
...
}
И действие контроллера:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult EditMember(Member model)
{
Member members = new Member();
var member = DBContext.Members.Find(model.MemberID);
if (member == null)
{
return HttpNotFound();
}
if(ModelState.IsValid)
{
DBContext.SaveChanges();
}
return View(member);
}
Я также попытался изменить параметр методов действия, чтобы он выглядел следующим образом
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult EditMember(int? id) { ... }
Но ошибка остается прежней.
ОДНАКО ...
Если я удалю аннотацию [HttpPost
, ошибка исчезнет, и она найдет запрошенный URL. Но он просто не отправит изменения и не сохранит их в базе данных.
То есть, если я сделаю:
[ValidateAntiForgeryToken]
public ActionResult EditMember(Member model)
Затем он находит запрошенный URL, но не сохраняет изменения в базе данных.
В чем может быть моя проблема?