ASP .NET MVC AJAX BeginForm InsertionMode.Replace не работает хорошо - PullRequest
1 голос
/ 23 октября 2010

Я вижу результат при вводе чего-либо в текстовое поле.Результат действительно идет в DIV, я хочу.Тем не менее, я смотрю на исходный код страницы и не вижу заменяющего элемента.

Например, я ввожу 'aaaaaaaaaaaaaaaa', нажимаю кнопку отправки, я вижу результат, как вы ввели aaaaaaaaaaaaaaaa;Но если щелкнуть правой кнопкой мыши, чтобы открыть исходный код, я не вижу его html-элемента

. Поскольку я использую Accordion в другом месте, Accordion не работает должным образом, потому что JavaScript не видит html-элементы, возвращаемые из Action.

Что мне сделать, чтобы это исправить?

Представление

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

<h2>Home Page</h2>
<%using (Ajax.BeginForm("Index", new AjaxOptions { UpdateTargetId = "HomeResult", InsertionMode = InsertionMode.Replace }))
  { %>
    <%= Html.TextBox("query", null, new {size=40}) %>
    <input type="submit" value="Home Submit" />
<%} %>

<div id="HomeResult"> 
    <h2>Home result goes here.</h2>
    <%Html.RenderPartial("PartialResult", ViewData.Model); %>
</div>

Действие контроллера

    public ActionResult Index()
    {            
        if (Request.IsAjaxRequest())
        {
            ViewData["Message"] = "Partial View Logon";

            return PartialView("PartialResult", Request.Params.Get("query"));
        }
        return View();
    }

Представление частичного результата

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

<div>
<% if (Model != null) %>
<% { %>
    <h1>
        You entered <%= Model.ToString() %>
    </h1>
<% } %>
</div>

Ответы [ 2 ]

0 голосов
/ 23 октября 2010

щелкните правой кнопкой мыши, чтобы открыть исходный код

даст вам источник страницы, когда страница была загружена, и не будет отражать изменения, внесенные в DOM с момента загрузки страницы. Возможно, вам следует подумать об использовании правильного веб-отладчика, такого как FireBug .

Как только вы поймете, что на самом деле происходит, вы, возможно, сможете лучше понять, где что-то идет не так.

0 голосов
/ 23 октября 2010

Я думаю, что вы смотрите на неверный путь с вашей проблемой. Вы просматриваете источник загруженной DOM, а не обновленную DOM. Я говорю, используйте Firefox / Chrome и панель инструментов веб-разработчика, которая позволяет вам просматривать «сгенерированный» источник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...