У меня есть контроллер в MVC5 для формы заявки. Существует GET вернуть вид и POST принимать данные формы из приложения и обрабатывать его: -Действия ASP.NET MVC с таким же именем
public ActionResult Apply(string jobReference)
{
Apply form = new Apply();
Session[Settings.JOBREFERENCE] = jobReference;
return View(form);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Apply(Apply form)
{
if (ModelState.IsValid)
{
}
}
Когда я нажимаю отправить форму, он вызывает контроллер GET вместо самотестирования контроллер, несмотря на то, что у него есть [HttpPost] на последнем.
Если я активно переименовал контроллер HTTPPost и перейду к нему, я вижу сообщение об ошибке сервера с сообщением о том, что его невозможно найти. Отправка формы приводит к сбою страницы.
Форма Код
@model Salt.Models.Apply
<div class='applyForRoleExt popupBox'>
<a href="#" class="closePopup"><img src="/img/closePopup.png" alt="close" /></a>
<div class="innerContainer">
@using (Html.BeginForm("Apply", "Form", FormMethod.Post, new { enctype = "multipart/form-data", @id = "ApplyForm" }))
{
@Html.AntiForgeryToken()
<h6>Apply for this role</h6>
@*<div class="haveAccount">
<span>Have an account? Apply quickly by logging in now</span>
<a href="#" class="loginApply">Login to my account</a>
</div>*@
<div class="leftCol">
<label>Name<span>*</span></label>
<div class="inputBox">
@Html.TextBoxFor(m => m.Name)
</div>
<label>Email Address<span>*</span></label>
<div class="inputBox">
@Html.TextBoxFor(m => m.EmailAddress)
</div>
<label>Telephone Number<span>*</span></label>
<div class="inputBox">
@Html.TextBoxFor(m => m.TelephoneNumber)
</div>
<label>Portfolio Link<span>*</span></label>
<div class="inputBox">
@Html.TextBoxFor(m => m.PortfolioLink)
</div>
</div>
<div class="rightCol">
<label>CV Upload</label>
<div class="inputBox">
@Html.TextBoxFor(m => m.CV, new { @type = "file" })
</div>
<label>Covering Note</label>
<div class="inputArea">
@Html.TextAreaFor(m => m.CoveringNote)
</div>
</div>
<div class="actions">
<p class="terms">By submitting this form you consent to Salt Recruitment processing your personal data in accordance with our privacy policy and agree to future contact material.</p>
<!--<button class="submit">Apply Now</button>-->
<input type="submit" name="submit" value="Apply Now" />
</div>
}
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$.validator.unobtrusive.parse("#ApplyForm");
});
</script>
Спасибо, Майк.
Удалить [ActionName («Применить»)] во всем коде. –
ActionName («Применить») теперь удален из моего кода. На форме у меня есть с использованием (Html.BeginForm ("JobApply", "Form", FormMethod.Post, new {enctype = "multipart/form-data", @id = "ApplyForm"})) –
Кроме того, теперь, когда эти изменения были сделаны, и я изменил сообщение на «JobApply». Я изменил контроллер на JobApply, приняв класс Apply как модель. Я получаю 404 Not Found. Возможно, проблема маршрутизации? –