Я делаю то же самое, используя форму Ajax. Это действительно легко. Вот код, который я использую:
Html:
<div>
<%
using (Ajax.BeginForm("Home", "Search", null,
new AjaxOptions { UpdateTargetId = "Output" },
new { id = "SearchForm" }))
{
%>
<!-- Form Fields -->
<input name="searchField" />
<input type="submit" value="Search" />
<%
}
%>
<div id="Output">
</div>
</div>
Тогда в контроллере просто есть:
public PartialViewResult Search(FormCollection form)
{
var model = YourSearchMethod(form["searchField"]);
return PartialView("Search", model);
}
Div с идентификатором «Output» будет обновляться с вашим частичным результатом просмотра каждый раз, когда нажимается кнопка «Отправить». В вашем случае у вас есть два различных возможных частичных представления, просто отправьте значение переключателя как часть вашей формы, и вы можете переключить выходное представление из контроллера.
Зачем использовать FormCollection вместо параметров? У меня были некоторые трудности с использованием именованных параметров с формами ajax, но вы можете попробовать и посмотреть, как это работает. Вместо этого он должен выглядеть примерно так:
public PartialViewResult Search(string searchField, bool inquiry)
{
if (inquiry)
{
var model = YourInquiryMethod(searchField);
return PartialView("Inquiry", model);
}
else
{
var model = YourSearchMethod(searchField);
return PartialView("Search", model);
}
}