我正在尝试更新我的网页中的一个小区域,我只想在用户点击按钮时重新加载ascx页面(而不是刷新整个页面)。代码示例显示below.When很好地加载了它的工作。
但是在ajax请求之后,它没有显示加载的数据(意思是名称和地址被更改)。在调试时,我可以看到在ajax requset之后,带有新数据的html正在为ascx页面构建。但它没有更新视图。
视图
<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; }发布于 2011-03-01 09:46:39
您必须指定'UpdateTargetId‘(要更新的Html)。试试看以下几点。
<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",
UpdateTargetId = "result"
}))
{ %><button type="submit" name="test">test button</button>
<% } %>
<div id="result">
<% Html.RenderPartial("test"); %>
</div>
</asp:Content>https://stackoverflow.com/questions/5152405
复制相似问题