【问题标题】:partial view not showing部分视图未显示
【发布时间】:2012-05-31 01:50:02
【问题描述】:

我在“X”控制器下有一个名为“_PartialPage1”的局部视图。 这是我部分观点的内容:

<div>Hello</div>

我的 X 控制器包含以下内容:

    public ActionResult _PartialPage1()
    {
        return View();
    }

在我的主页索引中,我有这个:

 <div style="float:left"> @Ajax.ActionLink("Call X", "_PartialPage1", "X", new AjaxOptions() { UpdateTargetId = "divToUpdate" }) </div>
 <div style="float:left"> @Ajax.ActionLink("Call Y", "_PartialPage2", "Y",new  AjaxOptions(){ UpdateTargetId = "divToUpdate" }) </div>
 <div style="float:left"> @Ajax.ActionLink("Call Z", "_PartialPage3", "Z",new  AjaxOptions(){ UpdateTargetId = "divToUpdate" }) </div>

 <div id="divToUpdate"></div>

当我单击 Call X 时,没有显示任何内容..我正在尝试学习 ajax 部分页面更新....希望您能帮助我...谢谢 :)

【问题讨论】:

  • 你的动作被击中了吗?您是否尝试返回 PartialView() 而不是 View();
  • 谢谢...我不知道有一个叫做 PartialView 的东西...你认为我可以将 Ienumerable 返回给 PartialView 吗?如果是,我的部分视图代码中应该包含什么来接受返回的数据...
  • 如果你想让你的局部视图返回一个 IEnumerable 那么在 cshtml 文件中你会有 @model IEnumerable 并且在你的操作中你会返回 PartialView(anIEnumerable);如果您没有返回正确的模型类型,您会收到一个错误,这可以解释为什么您没有看到任何结果。

标签: ajax asp.net-mvc-3 partial-page-refresh


【解决方案1】:

如果你想渲染一个局部视图,你应该使用:

@Html.Partial("PartialViewName"); 

您有一个名为“PartialViewName”的局部视图 带有 div 标签 hello

【讨论】:

    【解决方案2】:

    如果你有

    • 名为 XController 的控制器包含名为 _PartialPage1 的操作
    • 对您正在使用的页面上的 jquery 和 jquery.unobtrusive-ajax javascript 库的引用
    • 名为“_PartialPage1”的正确文件夹中的视图
    • id 为 divToUpdate 的 div

    那么您提供的代码应该可以工作。我会检查是否满足所有这些条件。我建议使用 firebug 来验证您的 ajax 调用是否有效。返回 PartialView 而不是 View 更合适,但无论哪种方式,您都应该在 div 中看到结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多