【问题标题】:MVC Partial View renders but does not execute Razor codeMVC 局部视图呈现但不执行 Razor 代码
【发布时间】: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&lt;MyType&gt;,但这没有任何区别。

在我的完整视图中,我调用了@Html.Partial("MyPartial", Model),但仍然只有外部的&lt;div&gt; 标记显示在我的页面源代码中。

这是一个非常令人沮丧的问题,因此我们将不胜感激。

【问题讨论】:

  • 您是否确定在对c# 进行更改后进行构建?您是否尝试过在那里设置断点以确保Model 不为空? @Html.Partial("MyPartial", Model) 将采用当前模型并将其传递给部分模型,而不会影响控制器,此时 Model 中的内容是什么?您的部分是否有 @model 声明?孩子和父母中的@model 声明是否匹配?抱歉所有问题,但这些是我认为可能会影响您的 foreach 循环不迭代的一些领域。我保证任何有效的剃须刀代码都在执行。
  • 您能否也显示进行 ajax 调用的代码,以及通过帮助程序完成时定义 ajax 选项的代码?

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


【解决方案1】:

会不会是 Model 集合是空的? 尝试在 div 内部但在 foreach 外部添加另一个元素,例如 @Model.Count

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 2014-08-18
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多