Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Asp.Net Mvc and Ajax- problem


Автор: YuriG 26.7.2009, 11:20
Всем привет.

Пытаюсь написать приложение с использованием асп.нет мвс.

На мастер странице положил текстовое поле и кнопку :
                      <%--   <% using (Html.BeginForm("SearchBySomeText", "Task", FormMethod.Get)){%>--%>
                      <% using (Ajax.BeginForm("SearchBySomeText", "Task", new AjaxOptions { UpdateTargetId = "main", HttpMethod = "get" }))
                         { %>
                                       
                        <label for="Name"> Text to find : </label>
                        <%= Html.TextBox("Text")%>
                        <input type="submit" id="btnSearch" value="Search" onclick="return CheckInputValue()" /><br />                    
                    <%} %>


Контроллер:

        [AcceptVerbs(HttpVerbs.Get)]
        public ActionResult SearchBySomeText(string Text)
        {
            if (Request.IsAjaxRequest())
            {
                ViewData["SearchResults"] = _dataManager.Tasks.GetTasks();
                return View("Search");
            }
            else // for not ajax Search
            {
                ViewData["SearchResults"] = _dataManager.Tasks.GetTasks();
                return View("Search");
            }
        }


Результат запроса вывожу в представлении Search.aspx :

       <%if (ViewData["SearchResults"]!= null) { %>
        <% foreach (MvcBug.Models.Task t in (IEnumerable<MvcBug.Models.Task>)ViewData["SearchResults"])
           {%>
        <tr>
        <td>    <%= Html.ActionLink("Open","Task",new { id = t.TaskId }) %>
        </td>
        
            <td>
                <%= t.Title %>
            </td>
            <td>
                <%= t.CreatedOn.ToLongDateString() %>
            </td>
        </tr>
        <% } %>
        
        <% } %>

Проблема:

Если использую аякс.запрос то когда получаю результат получаю повторно кнопки и поля с мастер страницы:
http://pic.ipicture.ru/uploads/090726/9jZxmooo6C.jpg

Еслиже использовать обычный запрос- все ОК.
http://pic.ipicture.ru/uploads/090726/TRWHBxzT66.jpg

При чем нет связи с тем что положил текст.поле и кнопку на мастер, так как положил такоеже поле на саму страницу и тоже самое- с Аякс запросом вижу повторно кнопки с мастер страницы

Автор: Bestoloch 26.7.2009, 17:36
Ваша проблема заключается в том, что в случае с Ajax запросом вы возвращаете в элемент с id="main" всю страницу, а нужно только необходимую часть.
Код

if (Request.IsAjaxRequest())
{
    return PartialView("SearchResult");
}


где SearchResult это ascx контрол (SearchResult.ascx)

Автор: YuriG 27.7.2009, 14:14

 Спасибо. Вроде помогло smile smile 

Автор: Bestoloch 27.7.2009, 14:46
Тогда пометьте вопрос как решенный.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)