2012-07-02 153 views
2

当单击提交按钮时,我想生成一个弹出窗口,显示项目列表。我试图创建弹出代码如下:`单击按钮时弹出生成

索引视图:

<script type="text/javascript"> 
$('#popUp').Hide(); 
$('#button').click(function() { 
    $('#popUp').click(); 
}); 
</script> 

<div class="left-panel-bar"> 
@using (Html.BeginForm(FormMethod.Post)) 
{ 
     <p>Search For: &nbsp;</p> 
     @Html.TextBox("companyName",Model); 
     <input id="button" type="submit" value="Submit" /> 
} 
</div> 

<div id="popUp"> 
    @Html.ActionLink("Get Company List", "CreateDialog", "Company", null, new 
    { 
     @class = "openDialog", 
     data_dialog_id = "emailDialog", 
     data_dialog_title = "Get Company List" 
    }); 
</div> 

,但我使用此代码..当我点击它打开另一个页面,而不是弹出提交按钮了麻烦。控制器代码如下:

[HttpPost] 
public ActionResult Index(Companies c) 
{ 
    Queries q1 = new Queries(c.companyName); 
    if (Request.IsAjaxRequest()) 
     return PartialView("_CreateDialog", q1); 
    else 
     return View("CreateDialog", q1); 
} 

回答

1

你可以使用AJAX:

<script type="text/javascript"> 
    $(function() { 
     $('form').submit(function() { 
      $.ajax({ 
       url: this.action, 
       type: this.method, 
       data: $(this).serialize(), 
       success: function(result) { 
        $('#popUp').html(result); 
       } 
      }); 
      return false; 
     }); 
    }); 
</script> 

<div class="left-panel-bar"> 
    @using (Html.BeginForm()) 
    { 
     <p>Search For: &nbsp;</p> 
     @Html.TextBox("companyName", Model); 
     <input id="button" type="submit" value="Submit" /> 
    } 
</div> 

<div id="popUp"> 
</div> 

现在EHN表单提交,AJAX请求将被发送到索引POST操作,自你内心的测试,如果该请求是一个AJAX请求,它将返回_CreateDialog.cshtml局部视图并将其插入到#popUp div中。此外,为了取消默认即使将浏览器从当前页面重定向,也必须从表单提交处理程序返回false。

+0

谢谢你的答案,它的工作,现在我需要在ajax对话框中显示对话框我该怎么做? –

+0

您可以使用jQuery UI对话框控件。 –

+0

嗨,我已经创建了使用JQuery UI对话框控件的ajax对话框,现在我想为它创建Html帮助器。我该怎么做?你会给我一些想法吗? –