Я пытаюсь обновить небольшую область на моей веб-странице. Я просто хочу перезагрузить страницу ascx (без обновления всей страницы), когда пользователь нажимает кнопку. Пример кода показан ниже. При загрузке работает нормально.
Но после ajax-запроса загруженные данные не отображаются (означает, что имя и адрес изменены). Я вижу, что при отладке html с новыми данными создается страница ascx после ajax-реквизита. Но это не обновляет представление.
ВИД
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<script type="text/javascript" src="../../Scripts/MicrosoftAjax.js"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<% using (Ajax.BeginForm("Index", "Home",
new AjaxOptions {
HttpMethod="GET",
}))
{ %><button type="submit" name="test">test button</button>
<% } %>
<% Html.RenderPartial("test"); %>
</asp:Content>
Контроллер
public ActionResult Index()
{
Models.HomeModels obj = new Models.HomeModels();
obj.name = "initial name";
obj.address = "initial address";
if (Request.IsAjaxRequest())
{
obj.name="test";
obj.address = "success";
return PartialView("test",obj);
}
return View(obj);
}
Test.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<test_partial_renderning.Models.HomeModels>" %>
<% if(Model.address!=null)
{ %>
<%= Html.Encode(Model.name) %><br />
<%= Html.Encode(Model.address) %><br />
<% } %>
Модель
public string name { get; set; }
public string address { get; set; }