2

В моем приложении MVC я открываю всплывающее окно после нажатия кнопки «Создать», но я не могу отобразить рендер частичного просмотра. То, что я хочу сделать, это просто визуализировать partialview в всплывающем диалоговом окне и пропустить модель и некоторые параметры (то есть id = 1). Не могли бы вы рассказать мне, где ошибка? Заранее спасибо.Невозможно отобразить PartialView в модальном всплывающем окне (окно Kendo)

Примечание: Любое решение с использованием начальной загрузки модальный также был оценен ...

Вид:

@(Html.Kendo().Window() 
    .Name("CreateWindow") 
    .Title("Create Employee") 
    .Visible(false) 
    .Draggable(true) 
    .LoadContentFrom("_Create", "Employee") 
    .Width(800) 
    .Modal(true) 
    .Content("Loading Part List Info...") 
    .Draggable() 
    .Resizable() 
) 


<script type='text/javascript'> 
$(function() { 
    // When your button is clicked 
    $('#createbtn').click(function() { 
     var createWindow = $('#CreateWindow').data('kendoWindow'); 
     createWindow.center().open(); 
    }); 
}); 
</script> 


Контроллер:

[HttpGet] 
public ActionResult _Create() 
{ 
    var model = repository.Employee; 
    return PartialView(model); 
} 


PartialView:

@model Employee 

<div>MY PARTIAL VIEW CONTENT GOES HERE ...</div> 


+1

Я попробовал ваш код и он работает хорошо для меня. Просто отсутствует закрытый тег '' в конце вашего представления. – Banov

+0

На самом деле, в моем проекте нет пропущенного тега, и я добавил недостающий тег выше. С другой стороны, диалог открывается, но содержимое частичного просмотра не отображается, и данные модели не могут быть возвращены в модальное окно. Есть идеи? –

+0

Как мне кажется, работа для меня, а не для вас, я думаю, что проблема должна быть в другом месте. У вас есть на всякий случай некоторые потенциальные ошибки JavaScript в вашем навигаторе? (из вашего примера, со своей стороны, я могу передавать данные модели в PartialView и хорошо отображать их в этом) – Banov

ответ

1

Вот мой рабочий код, надеясь, что это поможет вам:

Вид:

@{ ViewBag.Title = "Test"; } 
@Styles.Render("~/Content/kendoui/css") 

<input type="button" id="createbtn" value="Test kWindow"/> 

@(Html.Kendo().Window() 
    .Name("CreateWindow") 
    .Title("Create Employee") 
    .Visible(false) 
    .Draggable(true) 
    .LoadContentFrom("_Create", "Employee", new { id = 1 }) 
    .Width(800) 
    .Modal(true) 
    .Content("Loading Part List Info...") 
    .Draggable() 
    .Resizable() 
) 

@Scripts.Render("~/bundles/kendoui") 
<script type='text/javascript'> 
$(function() { 
    // When your button is clicked 
    $('#createbtn').click(function() { 
     var createWindow = $('#CreateWindow').data('kendoWindow'); 
     createWindow.center().open(); 
    }); 
}); 
</script> 

PartialView:

@model Banov.Controllers.Employee 
<div>MY PARTIAL VIEW CONTENT GOES HERE ...</div> 
<div>@(Model.Id)</div> 
<div>@(Model.FirstName)</div> 
<div>@(Model.LastName)</div> 

Контроллер:

using System.Web.Mvc; 
namespace Banov.Controllers 
{ 
    public class EmployeeController : Controller 
    { 
     public ActionResult Index() 
     { 
      return View(); 
     } 

     [HttpGet] 
     public ActionResult _Create(int id) 
     { 
      var model = new Employee 
        { 
         Id = id, 
         FirstName = "John", 
         LastName = "Doe" 
        }; 
      return PartialView(model); 
     } 
    } 

    public class Employee 
    { 
     public int Id { get; set; } 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
    } 
} 
+0

Большое спасибо за вашу помощь.Фактически, это не работало для первой попытки после попытки вашего опубликованного кода, но я понял, что при выполнении отладки код попадает в точку останова на строке javascript и после отключения контрольной точки он работал (я думаю, главная проблема заключалась не в загрузке кендо сетка правильно, и это вызывает некоторую проблему в отношении javascript). Во всяком случае, я надеюсь, что этот ответ будет полезен и для других. Еще раз спасибо. Проголосовали + –

+0

Добро пожаловать;) – Banov

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