2012-03-23 59 views
0

我試圖將按鈕的值傳遞給模態對話框。我的按鈕事件是這樣的:MVC3從加載事件傳遞數據從jquery模式對話框控制器

//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');     
    }); 
    //========================================================================= 

IIM傳遞值到一個隱藏字段在我的模態的div:

@Html.Hidden("type") 

所以我需要的是把它變成一個HiddenFor和我需要通過一個模型視圖類 我AddFiles方法

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

這將是我的模型:

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

但我不知道如何將按鈕的值分配給我將創建的模型(該模型將具有字符串類型屬性)是否有辦法做到這一點,或者我沒有選擇獨立工作隱藏領域?

回答

1

我遇到了同樣的事情,並有一個簡單的解決方案。你需要傳入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() { } 
} 

你需要一個參數添加到您的行動結果的按鈕名稱,但應該爲我想你的工作重新做。

相關問題