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

本文关键字:执行 Razor 代码 视图 MVC | 更新日期: 2023-09-27 18:17:19

我有一个AJAX调用返回部分视图,但它只返回视图的<div>部分。我猜它忽略了剃刀的代码。这似乎是一个非常愚蠢的问题,我怎么也弄不清楚。

以下是我的部分观点:

<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)和STILL,只有外部<div>标签显示在我的页面源中。

这是一个相当令人沮丧的问题,所以任何帮助将非常感谢。

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

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

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

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