我正在关注名为“开发ASP.NET MVC 4 Web应用程序快速入门”的微软虚拟学院的视频。在第5部分:集成Javascript和MVC 4,他们开始展示如何使用PartialViewResults。我已经完全按照视频中的方式复制了代码,但是,我得到了不同的结果。他们没有显示一些代码(SessionController),我需要自己解决这个问题,所以也许这就是我搞砸的地方。
问题是Html.Action调用的部分视图显示为纯文本而不是HTML。如下
我已经尝试过Html.Action,Html.RenderAction,Html.Partial和Html.RenderPartial,所有这些似乎都给出了相同的结果。有什么线索我在这里做错了吗?我不希望用大量的代码列出这篇文章,所以如果有必要,我会根据要求发布代码。
编辑:请求Razor代码*
步骤1:
@model MVC_Tutorial2.Models.Session
<h3>
@Model.Title
</h3>
<div>
@Model.Abstract
</div>
@Html.Action("_GetForSession", "Comment", new { sessionID = Model.SessionID })
步骤2:
@model IEnumerable<MVC_Tutorial2.Models.Comment>
<div id="comments>
<ul>
@foreach (var comment in Model) {
<li>@comment.Content</li>
}
</ul>
@using (Ajax.BeginForm("_Submit", "Comment", new AjaxOptions() { UpdateTargetId = "comments" })) {
@Html.AntiForgeryToken()
@Html.Action("_CommentForm", new { SessionID = ViewBag.SessionID })
}
</div>
步骤3:
@model MVC_Tutorial2.Models.Comment
@Html.HiddenFor(m => m.SessionID)
<div>
@Html.LabelFor(m => m.Content)
@Html.EditorFor(m => m.Content)
</div>
<button type="submit">Submit Comment</button>
答案 0 :(得分:1)
如果未在所需脚本中正确链接,您将获得此确切行为。尝试在主视图的顶部添加以下内容(不是部分内容):
<script src="~/Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
显然请确保包含项目中可用的正确jQuery版本。
由于你已经有了脚本,其他一些东西显然是错误的。我注意到的第一件事是:
<div id="comments>
请注意缺少的引号。正如您UpdateTargetId = "comments"
,这可能是您遇到问题的原因。