Не удается получить RedirectToaction, чтобы показать полностью новую страницу, используя Ajax.BeginForm в MVC - PullRequest
2 голосов
/ 30 января 2011

Надеясь, что кто-то может помочь мне решить эту проблему. Я использую 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, поэтому, пожалуйста, помогите мне!

...