У меня есть эта проблема, у вас есть много искать, но с правильным ответом.Загрузить частичный вид после нажатия кнопки
У меня есть контактная форма в нижнем колонтитуле на моей странице _Layout, но когда я нажал кнопку, частичный вид открывается на новой странице.
Я не забываю включать jquery.unobtrusive-ajax.js. Вот что у меня есть.
Контроллер:
[HttpGet]
public ActionResult Call()
{
return PartialView("_PartialFooter");
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Call(CallMe callMe)
{
if(ModelState.IsValid)
{
}
return PartialView("_PartialFooter");
}
_layout скриптами выше тега Body в нижней
@using (Ajax.BeginForm("Call", "Home", new AjaxOptions { UpdateTargetId = "result" }))
{
<div id="result" class="margin-bottom-5">
@Html.Action("Call", "Home")
</div>
<button class="btn btn-common-small margin-bottom-10 pull-right" type="submit">Send</button>
}
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/bundles/myscripts")
@RenderSection("scripts", required: false)
@section Scripts {
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
}
_PartialFooter (частичный вид)
@model servicemadsen.Models.CallMe
@Html.AntiForgeryToken()
<div class="row">
<div id="result" class="margin-bottom-5">
<div class="col-md-6">
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control", @placeholder = "Navn" } })
</div>
<div class="col-md-6">
@Html.EditorFor(model => model.Phone, new { htmlAttributes = new { @class = "form-control", @placeholder = "Telefon" } })
</div>
<div class="col-md-12">
@Html.TextAreaFor(model => model.CallMeMessage, new { @class = "form-control", @placeholder = "Besked", @cols = 80, @rows = 7 })
</div>
<div class="col-md-12">
@Html.ValidationMessageFor(model => model.Name, string.Empty, new { @class = "field-validation-error" })
@Html.ValidationMessageFor(model => model.Phone, string.Empty, new { @class = "field-validation-error" })
@Html.ValidationMessageFor(model => model.CallMeMessage, string.Empty, new { @class = "field-validation-error" })
</div>
</div>
</div>
Надежда кто-то может помочь, его probaly какой-то фиктивный предмет, который мне нужен
Если вы перенаправляете, это означает, что 'jquery.unobtrusive-ajax.js' загружен неправильно. Наличие '@section Scripts {' в макете не имеет смысла (и эта часть содержит 2-ю копию jquery). Переместите файл 'jquery.unobtrusive-ajax.js' после' @ Scripts.Render ("~/bundles/myscripts") '(или лучше использовать пакет' jqueryval' и удалить '@section Scripts {' –