2015-05-28 116 views
2

在我的MVC应用程序中,我点击创建按钮后打开一个弹出窗口,但无法渲染其中的partialview渲染。我想要做的只是弹出对话框中的渲染部分视图,并将传递给它,并将一些参数(即id = 1)传递给它。你能告诉我哪里错了吗?提前致谢。无法在模态弹出窗口中显示部分视图(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

实际上,我的项目中没有缺失标签,我也在上面添加了缺失标签。另一方面,打开对话框,但不显示partialview中的内容,也无法将模型数据检索到模态窗口。任何想法? –

+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行上触发断点并在禁用它的断点之后工作(我认为主要问题是未加载该kendo正确的网格,并导致一些关于JavaScript的问题)。无论如何,我希望这个答案也会对其他人有所帮助。再次感谢。投票+ –

+0

不客气;) – Banov