Привет У меня есть следующий Razor View:Как передать объект с формой Ajax MVC в контроллер
@model AgonConFF.ViewModels.ClaimModel
@using (Ajax.BeginForm("DataCaptureNew", "Home", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "result", OnBegin = "onBegin()", OnComplete = "onComplate()" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.EditorFor(model => model.Origin.SourceName, new { htmlAttributes = new { @class = "form-control CapInput", placeholder = "Source Name" } })
@Html.ValidationMessageFor(model => model.Origin.SourceName, "", new { @class = "text-danger" })
@*Source Name*@
@Html.EditorFor(model => model.Origin.MailFax, new { htmlAttributes = new { @class = "form-control CapInput", placeholder = "Mail Address/Fax Nr" } })
@Html.ValidationMessageFor(model => model.Origin.MailFax, "", new { @class = "text-danger" })
@*Mail Address/Fax Nr*@
<input type="submit" value="Capture" class="btn btn-default" />
}
мой JS выглядит следующим образом:
function onBegin() {
$('#loading').show();
}
function onComplate() {
$('#loading').hide();
}
и мой контроллер выглядит следующим образом:
//Action method that handles the testCreate form submission
[HttpPost]
[ValidateAntiForgeryToken]
public PartialViewResult DataCaptureNew(ClaimModel origin)
{
if (ModelState.IsValid)
{
db.Origins.Add(origin.Origin);
origin.Origin.OriginID = 1;
db.SaveChanges();
return PartialView("testPartial", origin);
}
return PartialView("testPartial", origin);
}
Когда я представить свою форму и проверить внутри контроллера с точкой перерыва я вижу, чтоСоответствующий объектимеет значение null и дает мне ошибку. Это сообщение отлично работает, когда я просто использую Html.BeginForm
. В этом случае объект Origin
проходит через штраф. Как передать этот объект с помощью Ajax.BeginForm
?