Я использую Ajax.BeginForm, чтобы сделать запрос ajax, но asp.net mvc отображает результаты на новой странице, а не в div, установленном в UpdateTargetId. Я гарантировал, что на странице есть только один div с тем же именем.ASP.NET MVC показывает результат ajax на новой странице вместо UpdateTargetId
Сформированная разметка:
<form action="/MyController/MyAction" id="myform" method="post" onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, updateTargetId: 'myDiv', onSuccess: Function.createDelegate(this, someJsFunction) });">
<input type="text" name="name" id="userInput" value="" />
<input type="submit" id="mySubmit" style="display:none" />
</form><div id="myDiv"></div>
Здесь кнопка отправки не отображается, потому что я нажав на него с JavaScript (я использую тот же метод на другой странице, которая работает):
$(document).ready(function() {
$("[name:'name']").bind("keyup", function() {
$("#mySubmit").click();
})
Я использую последнюю версию asp.net mvc. Я не получаю ошибок скрипта, я дважды проверял, что все идентификаторы уникальны, все функции js существуют и работают без ошибок. Разметка html строго допустима, за исключением того, что входные данные не могут быть непосредственно в форме, но это отлично работает на других страницах. Код Serverside успешно завершен, и возвращаемая разметка совершенно правильная. Все кажется прекрасным, за исключением того, что результат отображается на новой странице, а не внутри моего div. Что я делаю не так?
Что возвращает ваше действие? A PartialView? JsonResult? –
Он возвращает частичный вид. –