2013-11-11 5 views
1

Я борется со всплывающим окном за последние несколько дней. Вот небольшая информация. Я очень новичок в использовании JavaScript, но я очень хочу учиться. Прежде всего here is an example of what I want to make. (нажмите «Inloggen» в верхнем правом углу, чтобы он появился). CSS не проблема. Я получил эту работу, используя bPopUp и копируя редактирование кода, используемого на сайте, а не examples.Создайте всплывающее окно, которое отображает частичный вид

Но в любом случае сайт, продемонстрированный здесь, выполнен с использованием php. Но мой босс решил переключиться на MVC 4 .NET. Это не проблема, за исключением того, что она больше не работает. И я не знаю, почему.

Итак, я решил начать все сначала, но я мог бы немного помочь.

Я бы предпочел добиться того, чтобы один <div> мог быть использован и отображает частичный вид.

Чтобы вызвать его, я хотел бы что-то в строках:

 <span class="popup_button white" data-popup="Some/view" data-height='200'>Inloggen</span> 

Это могут быть и другие теги вместо диапазона и Id может быть использован вместо класса, чтобы определить это всплывающее окно запуска. (Конечно, любые другие решения приветствуются, конечно). Я хотел бы, чтобы атрибут pop-pop-данных указывал, какое частичное представление для рендеринга при запуске и атрибут высоты данных задает высоту содержимого всплывающего окна.

Может ли кто-нибудь дать мне советы о том, как достичь этого? Я знаю, что можно много спросить, но каждое предложение приветствуется. Из-за моей неопытности с JavaScript я предпочитаю примеры кода, но любые архитектурные предложения будут с радостью приняты.

Спасибо, ребята заранее: D

+0

Поддержка нескольких модальных компонентов интегрированного контента ajax ... продолжайте делать некоторые поиски. Множество, чтобы выбрать из без повторного изобретательства колеса – charlietfl

+0

@charlietfl Я много раз искал, но я не мог найти то, что хочу, или я не узнал его как вещь, которую я хотел. Итак, если у вас есть предложения, пожалуйста, помогите. – RoXaS

+0

Поиск плагинов с открытым исходным кодом может расстраивать и съесть много времени. Но, если вы очень новичок в javascript, хорошо потрачено время. Создание демо в jfiddle.net того, что вы до сих пор слишком много помогает – charlietfl

ответ

2
$('#my-button').click(function() { 
    var BaseUrl = "/Popup/" + $('#my-button').data("popup"); 
    $.ajax({ 
     url: BaseUrl, 
     type: "POST", 
     data: { Id: $('.Id').val() } 
     cache: false, 
     async: true, 
     success: function (result) { 
      $(".content").html(result); 
      //There are different ways to do the pop up. you mentioned you had the popup working. trigger it here 
      $('#popup').fadeIn("slow"); 
      $('.fader').fadeIn("slow"); 
     } 
    }); 
}); 

Затем в контроллере

[HttpPost] 
public PartialViewResult Action(int Id){ 
    //populate a model 
    return PartialView("_PartialViewName", model); 
} 

Позвольте мне знать, если у вас есть какие-либо другие вопросы.

+0

Спасибо, человек, я скоро попробую. Фактически всплывающее окно теперь вставляет iframe в div .Content. Так что, наверное, мне все равно нужно это сделать? Какова задача «url:» @ (Url.Action («Action», «Controller») »,' line? – RoXaS

+1

IFrames используют свое использование, но из того, что я понимаю, обычно следует избегать. Действие замените их действием и именем контроллера.Это вызовет асинхронный вызов контроллера, который вернет частичное представление, которое в моем коде будет вставлено в div, после чего вы сможете сделать всплывающее окно на –

+0

. Хорошо, я начал с фактического выполнения примера bpopup, и это то, что я До сих пор . Но даже это работает на JSfiddle, но не в моем проекте. – RoXaS

Смежные вопросы