2013-09-25 31 views
0

嗨我想创建一个窗体上的搜索框。窗体MVC中的搜索工具4

我希望用户能够查找人名并在下方显示结果列表,然后用户点击所需的人员姓名。

这很简单。

然而,我想要这条记录随后被添加到'窗体'以及隐藏的id参数。

这样用户就可以点击提交,并提交人名加上其他字段。

我遇到的问题是,使用搜索框我需要一个Html.Beginform,但我也需要一个表单来提交最终的记录。因为我需要一个嵌套的表格,我听说这不是很好的做法。我知道搜索按钮表单可能是主窗体的一部分,但我不想提交整个表单仅用于名称查找。

理想情况下,使用部分视图进行某种AJAX调用可能是答案,但即使使用AJAX调用,我仍然需要表单中的表单。

希望你能帮助一个新手。 谢谢。

回答

0

这是一个非常简单的方法。

@using(Html.BeginForm("save", "record")) 
{ 
//your main form 
<a id="lookup">find a person</a> 
} 

<div class="hidden" id="lookupdialog"> 
<form id="lookupform"> //Form is optional - just for 'postable' area indication 

    //lookup form 
     <input type="text" id="query"> 
    <a id="search">search</a> 

</form> 
</div> 

因此,您有一个可见的主窗体,并隐藏了查找窗体。然后你使用javascript来显示对话框。类似于jquery:

$('#lookup').click(/*show #lookupdialog in a dialog*/); 

所以现在你有你的辅助窗体可见。当用户点击搜索时,您会向服务器发送请求。

$.ajax({ 
     type: "POST", 
     url: "/persons/search", 
     data: {query: $(#query).text()}, 
     success: function(data) 
     { 

      //show the list of persons found 

     } 
    }); 

然后,当用户选择一个人时,您将关闭对话框并将所选项目的ID保存到您的主窗体中。