Как в ASP.NET MVC сделать всплывающую форму?

491
12 июля 2017, 22:35

Например, пользователь нажимает на кнопку и вместо перехода на новую страницу, появляется всплывающее окно с этой формой..

Answer 1

Это называется "модальные окна":

// при клике на оверлей либо на кнопку убираем класс .shown со всех модальных окон и оверлея 
$('.overlay, .modal-close').click(function() { 
  $('.modal, .overlay').removeClass('shown'); 
}); 
 
// при клике на кнопку открытия модального окна получаем его id и докидываем класс .shown к нему и оверлею  
$('.open-modal').click(function() { 
  let modalId = $(this).data('modal-id'); 
  $('.overlay, #' + modalId).addClass('shown'); 
});
.modal { 
  width: 300px; 
  height: 200px; 
  border-radius: 5px; 
  border: 1px black solid; 
  background: #fff; 
  position: fixed; 
  top: 50%; 
  left: 50%; 
  margin-top: -100px; 
  margin-left: -150px; 
  display: none; 
  z-index: 5; 
  padding: 20px 10px; 
} 
 
.modal .modal-close { 
  width: 21px; 
  height: 21px; 
  position: absolute; 
  top: 10px; 
  right: 10px; 
  cursor: pointer; 
  display: block; 
  stroke: black; 
} 
 
.overlay { 
  z-index: 3; 
  position: fixed; 
  top: 0; 
  bottom: 0; 
  left: 0; 
  right: 0; 
  background-color: black; 
  opacity: 0.6; 
  display: none; 
} 
 
.modal.shown, 
.overlay.shown { 
  display: block; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button data-modal-id="modal-1" class="open-modal">Open modal #1</button> 
<button data-modal-id="modal-2" class="open-modal">Open modal #2</button> 
 
<div id="modal-1" class="modal"> 
  <span class="modal-close"> 
  <svg viewbox="0 0 40 40"> 
    <path class="close-x" d="M 10,10 L 30,30 M 30,10 L 10,30" /> 
  </svg> 
  </span> 
  <div> 
    Modal 1 
  </div> 
</div> 
<div id="modal-2" class="modal"> 
  <span class="modal-close"> 
  <svg viewbox="0 0 40 40"> 
    <path class="close-x" d="M 10,10 L 30,30 M 30,10 L 10,30" /> 
  </svg> 
  </span> 
  <div> 
    Modal 2 
  </div> 
</div> 
 
<div class="overlay"></div>

Варьировать с данными для окна можно как угодно:

$('.overlay, .modal-close').click(function() { 
  $('.modal, .overlay').removeClass('shown'); 
}); 
 
$('.load-modal-frame').click(function() { 
  let url = $(this).attr('href'); 
  $('.modal iframe').attr('src', url); 
  $('.overlay, .modal').addClass('shown'); 
   
  return false; 
});
.modal { 
  top: 20px; 
  left: 20px; 
  right: 20px; 
  bottom: 20px; 
  border-radius: 5px; 
  border: 1px black solid; 
  background: #fff; 
  position: fixed; 
  display: none; 
  z-index: 5; 
  padding-top: 40px; 
  overflow: hidden; 
} 
 
.modal .modal-close { 
  width: 21px; 
  height: 21px; 
  position: absolute; 
  top: 10px; 
  right: 10px; 
  cursor: pointer; 
  display: block; 
  stroke: black; 
} 
 
.modal iframe { 
  width: 100%; 
  height: 100%; 
  border-width: 0; 
} 
 
.overlay { 
  z-index: 3; 
  position: fixed; 
  top: 0; 
  bottom: 0; 
  left: 0; 
  right: 0; 
  background-color: black; 
  opacity: 0.6; 
  display: none; 
} 
 
.modal.shown, 
.overlay.shown { 
  display: block; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="https://ru.stackoverflow.com/" class="load-modal-frame">Open StackOverflow</a> 
<br> 
<a href="https://ru.stackoverflow.com/q/690722/235242/" class="load-modal-frame">Open my question</a> 
 
<div class="modal"> 
  <span class="modal-close"> 
  <svg viewbox="0 0 40 40"> 
    <path class="close-x" d="M 10,10 L 30,30 M 30,10 L 10,30" /> 
  </svg> 
  </span> 
  <iframe></iframe> 
</div> 
 
<div class="overlay"></div>

READ ALSO
Десериализация многомерного json

Десериализация многомерного json

Есть json, для которого я сгенерировал класс

222
Оптимизация кода по поиску файлов c#

Оптимизация кода по поиску файлов c#

Добрый день, у меня стоит такая задача : найти все png файлы в диске и переименовать их, как я сделал :

277
Отображение числа 9223372036854775807

Отображение числа 9223372036854775807

Почему разные языки по-разному отображают число 9223372036854775807, хотя все используют один и тот же формат 8-байтного double для представления чисел?

381