2011-04-20 219 views
1

在我的代码,我使用的局部视图(称之为PV1)在ASP.Net渲染视图MVC

<div id="div_1"> 
    <% Html.Partial("PV1", Model); %> 
</div> 

,并在局部视图我使用“Ajax.BeginForm”将其重定向到一个特定的行动,因此它这样做...

using (Ajax.BeginForm("action1", "Forms", null, new AjaxOptions { UpdateTargetId = "div_1" }, new { id = "form1" })) 
       { 
        Response.write("I am here."); 
       } 

public ActionResult action1(XYZ Model) 
{ 
     // 
     return PartialView("PV1", Model); 
} 

在行动,我再次调用相同部分“PV1”的最后一行,因此它也这样做......

但渲染时该视图不打印或执行写入的步骤在局部视图,它覆盖他们,并表明什么?

回答

2

Html.Partial实际上返回渲染视图的结果,你想要做<%= Html.Partial() %><% Html.RenderPartial(); %>

Html.Partial()返回HTML正是如此必须通过<%= %在页面上输出>和Html.RenderPartial()使用的Response.Write输出到页面上,并可与<% %>一起使用。

+0

Html.Partial(),因为我将控制器动作的输出结果返回给视图...但是它对我的查询有什么影响,我正在使用的ren输出...只是为了让你知道...尝试这两种方法...但问题仍然存在...请为我提供一个例子... – 2011-04-26 13:58:42

+0

我做到了使用Html.RenderPartial()...但这样做你必须非常小心地安排你的div ... – 2011-05-18 11:04:14

1

这不是你会使用Ajax.BeginForm什么。该助手被用来创建,稍后将提交给使用MVC的不显眼的AJAX服务器实际<form>标签(所以你仍然需要某种触发动作 - 一个按钮,JavaScript的 - 任何提交表单)。

我是不是你想要达到的目的很明确。如果你想用ajax加载部分视图,我会建议使用类似jQuery的ajax加载方法。

+0

我使用一个提交按钮......但反而再次呈现在页面会显示在空白页的局部视图局部视图...我也试着使用Ajax.BeginForm(...)和InsertionMode。 .. 我试图达到相同的结果,因为它是在下面的帖子解释 http://stackoverflow.com/questions/931001/self-ajax-updating-partial-view-controller-in-asp-net-mvc - 和最复制-DIV 但结果是一样的... ...,可以请你也帮我展示了如何实现使用jQuery和AJAX相同的行为(请举一些代码示例...)我使用 – 2011-04-26 13:49:47