Asp.Net Axaj.BeginForm & UpdateTarget не работает - PullRequest
3 голосов
/ 24 октября 2009

У меня есть это в HomeController :

public ActionResult Details(string id)
    {
        var customer = Customers.GetCustomersById(id);
        return PartialView("CustomerDetails", customer);
    }

И это в Index.aspx :

<div>
        <% using (Ajax.BeginForm("Details", new AjaxOptions
           {
               UpdateTargetId = "customerDetails",
               InsertionMode = InsertionMode.Replace,
               HttpMethod = "POST"
           }))
           { %>
        <p>
            Customer:
            <%=Html.DropDownList("id")%></p>
        <p>
            <input type="submit" value="Details" /></p>
        <% } %>
    </div>
    <div id="customerDetails">
</div>

И, наконец, в CustomerDetails.ascx У меня есть:

  <fieldset>
        <legend>Fields</legend>
        <p>
            Name:
            <%= Html.Encode(Model.Name) %>
        </p>
        <p>
            Credit:
            <%= Html.Encode(Model.Credit) %>
        </p>
        <p>
            CustomerID:
            <%= Html.Encode(Model.CustomerID) %>
        </p>
    </fieldset>
    <p>
        <%=Html.ActionLink("Edit", "Edit", new { /* id=Model.PrimaryKey */ }) %> |
        <%=Html.ActionLink("Back to List", "Index") %>
    </p>

CustomerDetails.ascx был создан путем щелчка правой кнопкой мыши на методе Details и выбора «Добавить представление», а также выбора частичного представления и строго типизированного представления.

Я бы хотел, чтобы это обновляло информацию о клиенте в «Ajax-манере» внутри div, называемого customerDetails внутри Index.html. Проблема в том, что после нажатия кнопки «Подробности» открывается новая страница с правильными деталями. Страница вывода не имеет цветов или макетов главной страницы.

Если я отлаживаю в методе Details, содержимое объекта customer будет правильным.

Любая помощь приветствуется!

/ П

1 Ответ

4 голосов
/ 24 октября 2009

Наиболее вероятный виновник в том, что вы не включаете MicrosoftAjax.js и MicrosoftMvcAjax.js на страницу. Это приводит к сбою javascript, потому что он не может найти необходимые функции, и вместо этого форма отправляется через Ajax.

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