Надеясь, что кто-то может помочь мне решить эту проблему.
Я использую Ajax.BeginForm довольно часто, когда мне нужно обновить часть моей реальной веб-страницы. Но если у меня есть вторая кнопка в веб-форме, где мне нужно перейти на совершенно другую страницу и, например, выполнить поиск и получить некоторые значения, которые мне нужны для заполнения формы. Страница отображается в панели обновлений (updateTargetID), а не в совершенно новом представлении. Это происходит даже в RedirectToAction в контроллере. Конечно, ajax.beginform делает то, что я принимаю, другими словами, обновляет панель, которая должна быть обновлена. Но есть ли способ заставить ajax.Beginform использовать redirectToaction без обновления, когда пользователь выбирает, например, поиск вместо отправки формы?
Я работаю с asp.net MVC,
Проблема;
<% using (Ajax.BeginForm(new AjaxOptions() { LoadingElementId = "loadingElement", UpdateTargetId = "SearchResult", InsertionMode = InsertionMode.Replace}))
{%>
<% Html.RenderPartial("Searchfields", Model); %>
<div>
<%:Html.ActionLink("blank", "Index")%>
</div>
<div id="loadingElement" style="display: none">
Load data...
</div>
<div id="SearchResult">
<% if (Model.SearchResult != null)
{
Html.RenderPartial("SearchResult", Model.SearchResult);
} %>
</div>
<% } %>
В контроллере (посте) я делаю это среди других вещей;
if (Request.IsAjaxRequest())
{
return PartialView("SearchResult", data.SearchResult);
}
Но перед этим мне нужно сделать:
if (data.SearchResult.Count() == 1)
{
return RedirectToAction("Edit", "Person", new { Id = data.SearchResult.First).Id});
}
но, конечно, если я сделаю ту дырочную страницу, которую я отобразил в соответствующем updateTargetId,
Мне нужно сделать новый вид вместо этого. Итак, как я могу, например, использовать javascript для перенаправления oncomplete и получить значения из модели, отправленные в сценарий, чтобы, например, сделать window.location.replace?
Я борюсь с JavaScript, поэтому, пожалуйста, помогите мне!