单击时在主视图中加载局部视图

时间:2015-03-27 02:15:55

标签: c# asp.net-mvc asp.net-mvc-5

我试图在用户点击链接时尝试加载部分视图以加载当前视图,但它会继续加载部分视图,而不是加载到同一视图上。

不确定我错过了什么。

主视图控制器

    public PartialViewResult MonitorDetail(MonitorType mType)
    {
        return PartialView("MonitorDetail", mType);
    }

主视图

<script src="~/Scripts/jquery-2.1.1.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>

<p class="lbutton radius">
    @Ajax.ActionLink("SQL Cluster Online ", "MonitorDetail", "NOCCon", MonitorType.AHSSQLCluster, new AjaxOptions() { UpdateTargetId = "monitorDetail" })
    <span class="lbutton-addition @(Model.SQLClusterOnline ? "online" : "offline")">
        @(Model.SQLClusterOnline ? "Online" : "Offline")
    </span></p>

<div id="monitorDetail"></div>

部分视图

@model PAL.Intranet.MonitorType
<div>
    You choose @Model.ToString()
</div>

还告诉我mType是null但是我在ActionLink中传递它是MonitorType所以我把它添加为可空的所以我可以尝试找出第一个问题,然后继续处理第二个问题。

1 个答案:

答案 0 :(得分:3)

如果它只显示部分视图,那么因为你没有包含Ajax.ActionLink工作所需的文件(它只是执行正常的重定向)。确保您已添加jquery.{version}.jsjquery.unobtrusive-ajax.js

参数mType为空的原因是您没有传递值。它应该是

@Ajax.ActionLink("SQL Cluster Online ", "MonitorDetail", "NOCCon", new { mtype = MonitorType.AHSSQLCluster }, new AjaxOptions() ....)