MVC部分视图使用jquery调用显示弹出窗口

时间:2010-04-22 13:20:38

标签: asp.net asp.net-mvc partial-views

我有一个索引页面将数据库中的对象呈现为树视图,每个项目都有一个链接href =“/ MessageGroupType / Edit / 1002,它进行Ajax调用以在DIV中显示部分视图。

在局部视图中有一个删除按钮,它会调用我的控制器来删除该项目。

但是,我会检查以确保项目可以删除,如果项目无法删除,那么我希望弹出窗口显示在编辑表单上,告诉用户他们无法删除此记录。

在我的编辑部分视图中,我有以下代码

<asp:PlaceHolder runat="server">
        <script src="<%= Url.Content("../../Scripts/JQuery/jquery-1.4.1.min.js") %>" type="text/javascript">
        </script>
</asp:PlaceHolder>


<script type="text/javascript" >
     $(function() {
         $("#dialog").dialog();
     });

</script>

  <% if (Boolean.Parse(ViewData["DisplayWindow"].ToString())){%>
     <div id="dialog" title="Cannot Delete Message Group Type">
             <p>This Mesage group Type Cannot be deleted as is linked to other message group Types </p>
             </div>
     <% }%>

所以我的主要问题是

  1. 我可以在部分视图中引用javascript脚本(我不希望在部分视图中调用我的母版页)
  2. 当我动态地将部分视图数据加载到我的DIV中时 - 我可以在调用我的控制器之后将另一个DIV插入到第一个DIV中。
  3. 我这样做是错误的 - 所以任何指针都很受欢迎
  4. 干杯

1 个答案:

答案 0 :(得分:1)

在树状视图中,您可以在Ajax.ActionLink中添加OnFailure AjaxOptions$("#dialog").dialog();选项,指向Response.StatusCode = (int)HttpStatusCode.BadRequest;

在您的控制器中,如果用户无法删除记录,则会将错误的请求代码(OnFailure)与您的HttpResponse相关联,因此将调用您的OnSuccess函数(并显示您的弹出窗口)。< / p>

如果记录已被删除,请不要忘记将{{1}}函数与Ajax.ActionLink相关联