2010-02-11 5 views
2

У меня есть простой просмотр списка в MVC, который отображает некоторые продукты. Как только выбран один продукт, который я открыть модальное всплывающее окно JQuery таким образом:ASP.NET MVC и JQuery Dialog postback

function showDetails(id) { 
    hostId = id; 
    $("#detailDialog").load('/Product/Details/' + hostId); 
    $("#detailDialog").dialog("open"); 
} 

модальное всплывающее окно правильно загружает частичный вид с деталями. Как только я нажимаю submit в представлении, представление возвращает результат (ActionResult) на совершенно новой странице, полностью белой, только с содержимым представления. Как я могу держать все внутри всплывающего окна? Мне нужно сделать это, потому что, если у формы есть некоторые недопустимые символы, я хочу, чтобы во всплывающем представлении я просмотрел ошибки проверки.

ответ

1

Вам понадобится отправить больше кода. Как сейчас, вы просто открываете диалоговое окно. Я не вижу ни одной из кнопок диалога. Так что я предполагаю, что вы просто положили свою собственную кнопку, загружаемую из нагрузки ajax?

Так что, возможно, если мы увидим этот код, он может помочь, как вы говорите submit. Означает ли это, что у вас есть кнопка, которая выполняет запрос отправки? Если это так, что сделает полный пост назад.

Вам либо нужно отменить запрос на отправку, как положить «return false» в конце его или изменить кнопку отправки на нее обычной кнопкой и подключить ее с помощью $ .post();

Это простой пример блокировки отправки запроса.

http://jsbin.com/avebu/2

если вы удалите возвращение ложного он загрузит всю страницу.