动态加载时Ajax.BeginForm的问题

时间:2014-09-26 13:18:08

标签: asp.net-mvc ajax.beginform unobtrusive-ajax

我在ASP.NET MVC5应用程序上有一个搜索页面。如果您选择"用户搜索"在角落有一个下拉菜单。出现用户的搜索过滤器。如果您选择"任务搜索"任务节目的搜索过滤器。

这些过滤器正在部分视图中加载,并在Ajax.BeginForm中封装。因此,当选择一个选项时,它会加载一个全新的形式。

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

searchResults div位于页面上,因此表单正在更新主页上div中的内容,其中包含另一个局部视图形式的数据。

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

如果我当时切换到Task Search,它会将上述表单替换为一个类似的但指向不同的操作,则返回搜索结果的部分视图将显示在其他页面上。

我认为这是因为我动态加载表单,它不再识别searchResults div,但可能会有所不同。这也可能是由unobstrusive.ajax.js引起的,如果它没有加载,结果工作正常,直到我更改搜索表单。

0 个答案:

没有答案