1

我在 ASP.NET MVC5 应用程序上有一个搜索页面。角落有一个下拉菜单,如果您选择“用户搜索”,则会出现用户搜索过滤器。如果您选择“任务搜索”,则会显示任务的搜索过滤器。

这些过滤器被加载到部分视图中,并被封装在一个Ajax.BeginForm. So when an option is chosen, it loads an entirely new form.

@using (Ajax.BeginForm("SearchUsers", "Search", "Search_default",
    new AjaxOptions
    {
        HttpMethod = "POST",
        InsertionMode = InsertionMode.Replace,
        UpdateTargetId = "searchResults",
        OnBegin = "StartSpinner",
        OnComplete = "EndSpinner"
    }))
{
//Form
}

searchResultsdiv 在页面上,因此表单正在使用另一个局部视图形式的数据更新主页上 div 中的内容。

无论我设置为默认的哪个搜索选项,在这个示例中的用户,都可以正常工作。当搜索结果返回并按预期替换 div 内容时。

如果我然后切换到Task Search哪个会用一个类似但指向不同操作的表单替换上述表单,则为搜索结果返回的部分视图会出现在不同的页面上。

我在想这是因为我正在动态加载表单,它不再识别searchResultsdiv 但这可能会有所不同。这也可能是由 unobtrusive.ajax.js 引起的,如果它没有加载,但是在我更改搜索表单之前结果工作正常。

4

0 回答 0