【发布时间】:2015-08-24 08:17:06
【问题描述】:
我的 asp.net mvc 控制器中有两种方法,它们搜索 google maps Places API 以在用户输入文本时执行自动完成操作。
在后台我了解 data-otf-autocomplete 函数在后台使用 JQUERY UI 自动完成来调用表单上的这些方法。老实说,我承认我并不完全理解 JQUERY UI 部分,因为我已经从 Scott Allen 的优秀 Pluralsight 课程 Building Applications with ASP.NET MVC4 的 AJAX 课程中的另一个 OdetoCode 示例改编它(顺便说一句很棒的课程)。 Scott 课程中的原始代码链接到本地数据库以返回 JSON 以完成自动完成功能,我已将其调整为连接到 Google MAPS Places API。
现在我有 两个 搜索框,每个搜索框都链接到控制器上的不同方法。一种使用位置搜索(最适合近似地址,爱尔兰的大多数农村地址都属于该类别),而另一种则适用于确切的街道地址。 在我看来,是否可以将这两个连接到一个单选按钮控件,这样您就有一个搜索框,并且根据选择的单选按钮选项(比如位置/地址),它会自动将请求路由到关联的方法控制器
@model IPagedList<RestaurantListViewModel>
@{
ViewBag.Title = "Home Page";
}
<form method="get" action="@Url.Action("Index")"
data-otf-ajax="true" data-otf-target="#List">
<input type="search" name="searchTerm" data-otf-autocomplete="@Url.Action("Autocomplete_Address")" />
</form>
<form method="get" action="@Url.Action("Index")"
data-otf-ajax="true" data-otf-target="#List">
<input type="search" name="searchTerm" data-otf-autocomplete="@Url.Action("Autocomplete_Locality")" />
</form>
@Html.Partial("_Restaurants", Model)
【问题讨论】:
-
不容易,每次单击单选按钮时,您都需要分离插件、更改 url 并重新附加插件。我建议一种更简单的方法可能是生成 2 个文本框(一个最初隐藏)并根据所选按钮切换文本框的可见性。如果它们都在同一个(比如说)div 元素中,你甚至不应该注意到 UI 的变化
-
谢谢斯蒂芬。这种方法非常有效。我将在下面发布更新的代码作为答案,以防对其他人有用
标签: c# jquery asp.net asp.net-mvc asp.net-mvc-4