【发布时间】:2013-06-05 22:49:26
【问题描述】:
我有一个 AJAX 调用返回部分视图,但它只返回视图的 <div> 部分。我的猜测是它忽略了 Razor 代码。这似乎是一个非常愚蠢的问题,我一生都无法弄清楚。
这是我的部分观点,完整的:
<div id="result">
@foreach (var log in Model)
{
<br />
<h3><b>Log ID: </b>@log.ID</h3>
<h3><b>Log Time: </b>@log.LogTime</h3>
<h3><b>Event Type: </b>@log.EventType</h3>
<h3><b>Message: </b>@log.Message</h3>
<h3><a href="Log/Details/@log.ID">View Details/Delete Entry</a></h3>
}
</div>
AJAX 调用返回的只是:
<div id="result">
</div>
这是 AJAX 调用调用的控制器内部的返回语句(是的,它命中):
return PartialView("MyPartial", MyModel);
我尝试在顶部添加@model IEnumerable<MyType>,但这没有任何区别。
在我的完整视图中,我调用了@Html.Partial("MyPartial", Model),但仍然只有外部的<div> 标记显示在我的页面源代码中。
这是一个非常令人沮丧的问题,因此我们将不胜感激。
【问题讨论】:
-
您是否确定在对
c#进行更改后进行构建?您是否尝试过在那里设置断点以确保Model不为空?@Html.Partial("MyPartial", Model)将采用当前模型并将其传递给部分模型,而不会影响控制器,此时Model中的内容是什么?您的部分是否有@model声明?孩子和父母中的@model声明是否匹配?抱歉所有问题,但这些是我认为可能会影响您的foreach循环不迭代的一些领域。我保证任何有效的剃须刀代码都在执行。 -
您能否也显示进行 ajax 调用的代码,以及通过帮助程序完成时定义 ajax 选项的代码?
标签: c# ajax asp.net-mvc razor partial-views