MVC部分视图呈现但不执行Razor代码

时间:2013-06-05 22:49:26

标签: c# ajax asp.net-mvc razor partial-views

我有一个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语句(YES,它命中):

return PartialView("MyPartial", MyModel);

我尝试在顶部添加@model IEnumerable<MyType>,但这没有任何区别。

在我的完整视图中,我正在调用@Html.Partial("MyPartial", Model)并且仍然只有外部<div>标记显示在我的网页源代码中。

这是一个非常令人沮丧的问题,所以任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

可能是Model集合是空的吗? 尝试在div中添加另一个元素@Model.Count,但在foreach之外。

或者,在控制器中放置一个断点,以确保集合包含至少一个元素。

这将测试由于空集合而导致foreach未执行的假设