我有一个返回局部 View 的 AJAX 调用,但它只返回 <div>
View 的一部分。我的猜测是它忽略了 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 调用调用的 Controller 内的返回语句(是的,它命中):
return PartialView("MyPartial", MyModel);
我试过添加 @model IEnumerable<MyType>
在顶部,但这没有任何区别。
在我的完整 View 中,我正在调用 @Html.Partial("MyPartial", Model)
仍然,只有外面的<div>
标签显示在我的页面源代码中。
这是一个非常令人沮丧的问题,因此我们将不胜感激任何帮助。
最佳答案
莫非Model集合是空的?
尝试在 div 内但在 foreach 外添加另一个元素,例如 @Model.Count
。
或者,在 Controller 中放置一个断点以确保集合至少包含一个元素。
这将测试 foreach 由于集合为空而未执行的假设
关于c# - MVC 局部 View 呈现但不执行 Razor 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16951153/