在MVC 4表单中搜索工具

时间:2013-09-25 13:12:57

标签: asp.net-mvc asp.net-mvc-4

您好我想在表单上创建一个搜索框。

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

这很容易。

但是我希望将此记录添加到“表单”以及隐藏的id参数。

然后,用户可以单击“提交”,然后提交人名和其他字段。

我遇到的问题是,在搜索框中我需要一个Html.Beginform但我还需要一个表单来提交最终记录。我无法理解这一点,因为我需要一个嵌套的表格,我听说这不是一个好习惯。我知道搜索按钮表单可能是主表单的一部分,但我不想仅为名称查找提交整个表单。

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

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

1 个答案:

答案 0 :(得分: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保存到主表单。