首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Html.RenderPartial -MVC的问题

Html.RenderPartial -MVC的问题
EN

Stack Overflow用户
提问于 2011-03-01 09:09:02
回答 1查看 1.4K关注 0票数 1

我正在尝试更新我的网页中的一个小区域,我只想在用户点击按钮时重新加载ascx页面(而不是刷新整个页面)。代码示例显示below.When很好地加载了它的工作。

但是在ajax请求之后,它没有显示加载的数据(意思是名称和地址被更改)。在调试时,我可以看到在ajax requset之后,带有新数据的html正在为ascx页面构建。但它没有更新视图。

视图

代码语言:javascript
复制
<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>

控制器

代码语言:javascript
复制
  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

代码语言:javascript
复制
<%@ 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 />
 <% } %>

模型

代码语言:javascript
复制
    public string name { get; set; }
    public string address { get; set; }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-01 09:46:39

您必须指定'UpdateTargetId‘(要更新的Html)。试试看以下几点。

代码语言:javascript
复制
<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>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5152405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档