我知道前面两个关于嵌套部分视图的问题,但解决方案不适用于我的设计(这可能不是最好的,但我不确定如何调整它)。
背景:
我收集用户的问卷回复,并将它们作为 xml 文件存储在 sql server 上。
我有一个局部视图,它加载一个包含给定用户的所有响应的表,这个局部视图用响应日期、xml 响应文档的链接、调查表名称、xml 调查表文档的链接(调查表信息来自一个不同的表)和一个 Ajax ActionLink,它重定向到解析两个相关 xml 文档以在第二个局部视图中打印出问题和答案列表(即将响应可视化为人类可读)的操作。
第一个部分视图在表格下方包含一个 div,我希望使用第二个部分视图填充 Ajax.ActionLink 的 onclick。
问题:
答案正确呈现,但是部分视图被加载到一个全新的页面中,没有任何样式。
这个嵌套问题的其他解决方案使用 RenderPartial() 但是我使用 return PartialView()
代码:
第一部分视图:
<table>
<thead>
<tr><th>headers with other info</th>
<th>Display(/th>
<tr>
</thead>
<tbody>
<tr><td>cells with other info</td>
<td>@Ajax.ActionLink("View", "DisplayResponse","HealthStatus", new { respID = item.UniqueID,qVersion=item.QuestionnaireVersion, qname = item.QuestionnaireName }, new AjaxOptions { UpdateTargetId = "responseDisp" })</td>
</tbody>
</table>
<div id="responseDisp"></div> <--- **This is the div I wish to populate, does anyone know why it's not working?**
DisplayResponse Action(没有解析 xml 文档的逻辑)
public ActionResult DisplayResponse(Guid respID, int qVersion, String qname) {
var allResponses = ZData.Responses;
var response = (from r in allResponses
where r.UniqueID == respID
select r
).First();
//geting an XML questionnaire document
var questionnaireDetails = ZodiacData.Questionnaires;
var questionnaire = (from q in questionnaireDetails
where q.Name == qname && q.Version == qVersion
select q
).First();
//creating XMLDocument to read the questionnaire
XmlDocument xqdoc = new XmlDocument();
xqdoc.LoadXml(questionnaire.Xml);
XmlElement qroot = xqdoc.DocumentElement;
ViewBag.qroot = qroot;
XmlDocument xrdoc = new XmlDocument();
xrdoc.LoadXml(response.Raw);
XmlElement rroot = xrdoc.DocumentElement;
ViewBag.rroot = rroot;
return PartialView("_PrintedResponse");
}
如果有任何帮助,我将不胜感激!