Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dialog 在MVC4应用程序中打开对话框的最佳方法_Dialog_Asp.net Mvc 4 - Fatal编程技术网

Dialog 在MVC4应用程序中打开对话框的最佳方法

Dialog 在MVC4应用程序中打开对话框的最佳方法,dialog,asp.net-mvc-4,Dialog,Asp.net Mvc 4,我才刚开始学习MVC,所以请耐心点 我有一个表,旁边有一些选项,您可以编辑、删除和显示该表的详细信息 如果我现在单击“详细信息”按钮,它将带我进入另一个页面(Details.cshtml) 它与显示上表的Index.cshtml位于同一控制器中 这是表的代码(Index.cshtml) 我想做什么: 在对话框(而不是其他页面)中打开“删除”、“编辑”或“详细信息”视图 仍然能够像打开另一个页面一样拥有相同的功能 我不知道这是否太有道理。我试图尽我所能解释它,但在搜索谷歌/尝试其他解决方案的

我才刚开始学习MVC,所以请耐心点

我有一个表,旁边有一些选项,您可以编辑、删除和显示该表的详细信息

如果我现在单击“详细信息”按钮,它将带我进入另一个页面(Details.cshtml) 它与显示上表的Index.cshtml位于同一控制器中

这是表的代码(Index.cshtml)

我想做什么:

  • 在对话框(而不是其他页面)中打开“删除”、“编辑”或“详细信息”视图
  • 仍然能够像打开另一个页面一样拥有相同的功能
我不知道这是否太有道理。我试图尽我所能解释它,但在搜索谷歌/尝试其他解决方案的代码时感到沮丧,但无法让它工作


如果您建议使用JQUERY对话框之外的其他方法,我也愿意使用该选项。非常感谢您的帮助,因为我一直很沮丧。

我想您可能希望将它们打开到一个模式对话框中。要完成此操作,可以从控制器返回部分视图

您可以将类添加到操作链接,如下所示:

@Html.ActionLink("Details", "Details", new { id=Model.changes[i].ID }, new { @class = "details-modal" })
你的详细行动方法:

public ActionResult Details(int id)
{
    // Your code here
    return PartialView("_Details", myModel); // return the partial view with the model
}
jQuery(不在我的脑海中,因此可能不是100%正确):


我打算回家后试试,但这看起来是对的。我会让你知道的。我修改了我的代码并尝试了一下,但仍然不起作用。当我点击“详细信息”按钮时,它什么也不做。在看另一个例子时,我也遇到了同样的问题,所以我不知道从这里可以走到哪里。我确实返回了true,以查看脚本是否到达它,它只是将我重定向到页面。不过,就对话框的工作情况而言,它并不起作用。有什么想法吗?我实际上找到了另一种可能的方法,它可能会起作用,所以我打算用另一种方法来做,但是你的代码帮助了我,所以我会接受它。谢谢您的帮助。@Claud25您是否按照适当的顺序加载了正确的jQuery脚本?是的,就像我说的那样,它看起来不错,应该可以工作,但实际上不行。我肯定我做错了什么,但我真的看不出问题所在。
@Html.ActionLink("Details", "Details", new { id=Model.changes[i].ID }, new { @class = "details-modal" })
public ActionResult Details(int id)
{
    // Your code here
    return PartialView("_Details", myModel); // return the partial view with the model
}
$('#my-dialog').dialog({
    autoOpen: false,
    width: 400,
    resizable: false,
    modal: true
});

$('.details-modal').click(function() {
    var theURL = $(this).attr('href');

    $('#my-dialog').load(theURL, function() {
        $(this).dialog('open');
    });

    return false; // ensures the browser is not redirected to the link's URL
});