我在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引起的,如果它没有加载,结果工作正常,直到我更改搜索表单。