Вы можете использовать jQuery UI dialog.
Так вы начинаете писать контроллер:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Modal()
{
return PartialView();
}
}
то Modal.cshtml
частичный, который будет содержать частичную разметку, которую вы хотите отобразить в модальный:
<div>This is the partial view</div>
и Index.cshtml
вид, содержащий кнопка, которая будет показывать частичную в модальную форму при нажатии:
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.js")" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$('.modal').click(function() {
$('<div/>').appendTo('body').dialog({
close: function (event, ui) {
dialog.remove();
},
modal: true
}).load(this.href, {});
return false;
});
});
</script>
@Html.ActionLink("show modal", "modal", null, new { @class = "modal" })
Очевидно, что в этом примере я поместил непосредственно скрипты в представление Index, но в реальном приложении эти скрипты войдут в отдельный файл javascript.
Большое спасибо за этот пример, это помогает много. Еще один вопрос, который я включил в MVC3 в мое приложение для веб-форм. Таким образом, элемент управления, который запускает модальный, находится в веб-формах. Я не думаю, что могу использовать @ Html.ActionLink в веб-формах, есть ли альтернатива? – amateur
Конечно, есть альтернатива. Все, что генерирует хелпер 'Html.ActionLink', это тег' '. Таким образом, вы можете создать эту разметку в своем приложении веб-форм. –
Привет, Дарин, я пробовал использовать это как http://stackoverflow.com/questions/15876993/display-partialview-as-popup, но я все еще просто получаю новую страницу. Есть идеи? – Tim