MVC3在加载事件中将数据从jquery模态对话框传递给控制器

MVC3 passing data from jquery modal dialog to controler at load event

本文关键字:对话框 模态 控制器 jquery 加载 事件 数据 MVC3      更新时间:2023-09-26

我正试图将按钮的值传递给模式对话框。我的按钮事件如下:

//Dialog Function=============================================================
    //declaring the function
    $(function () {
        $('#dialog').dialog({
            autoOpen: false,
            hide: 'fade',
            show: 'fade',
            width: 350,
            height: 270,
            resizable: false,
            modal: true,
            dialogClass: 'dialog',
            open: function (event, ui) {               
                $(this).load('@Url.Action("AddFiles", "ProjectDetails")');
            }
        });
    });
    //Showing the dialog when one of the 3 buttons is clicked.
    $("button[name='Add']").click(function () {
        $('#type').val($(this).val());   
        $('#dialog').dialog('open');                 
    });
    //=========================================================================

我正在将值传递给模式div:中的一个隐藏字段

@Html.Hidden("type")

所以我需要把它变成一个HiddeFor,为此我需要传递一个modelview类在我的AddFiles方法中

public ActionResult AddFiles()
    {
        return View();
    }

这将是我的型号:

public class FileViewModel 
{
    public string Name { get; set; }
   public string type { get; set; }
   public string comments { get; set; }        
 }

但我不知道如何将按钮的值分配给我要创建的模型(模型将具有字符串类型属性)有没有办法做到这一点,或者我别无选择,只能使用独立的隐藏字段?

我遇到了同样的事情,有一个简单的解决方案。您需要传入id,然后打开对话框。以下是php中的一个示例。我在mvc中也这样做,所以一旦我有了语法,我就会发布它

这是链接。http://groups.google.com/group/jquery-en/browse_thread/thread/13a3a580b4128d3d

此外,我忘了提到,如果您将数据传递给模型,则需要一个构造函数来创建该类的实例,即:

var DataBuilderList = new List<FileViewModel>();
DataBuilderList.Add(new FileViewModel{ name = "thename", type = "thetype", comments = "comments" });

您需要从控制器中调用一个方法,该方法将在传递到操作中之后执行此操作。

如果我错了或者有任何意见,请告诉我。祝你好运

顺便说一句,它的语法与jquery相同:

open: function () { $(this).load('ProjectDetails/AddFiles', {  : id }), function () { }
}

您需要为按钮名称在操作结果中添加一个参数,但这应该适用于我认为您正在做的操作。