2011-12-06 69 views
2

我創建了一個彈出窗口來加載部分視圖。我想將控制值從父頁面傳遞到彈出窗口中呈現的部分視圖。我如何傳遞這些值?將控制值傳遞給使用Asp.net MVC3彈出的局部視圖

下面是用於打開彈出窗口的代碼。 ModifyAgRule是div ID,AuthorityGridModify是用於呈現局部視圖的操作方法的名稱。

一些更多的信息:

我在父頁面的WebGrid,當用戶在這個網格並點擊修改按鈕,彈出應該出現在下拉菜單和文本框選擇的值將出​​現選擇一行。

<script type="text/javascript"> 
    $(document).ready(function() { 
     //define config object 
     var dialogOpts = { 
      title: "Modify Rule", 
      modal: true, 
      autoOpen: false, 
      height: 500, 
      width: 500, 
      open: function() { 
       //display correct dialog content 
       $("#ModifyAgRule").load("AuthorityGridModify"); 
      } 
     }; 
     $("#ModifyAgRule").dialog(dialogOpts); //end dialog 

     $('#Modify').click(function() { 
      $("#ModifyAgRule").dialog("open"); 
      return false; 
     });  
    }); 
</script> 
+0

您正在將您的部分視圖的名稱傳遞給'load()'函數,該函數不起作用,因爲它應該傳遞一個URL來加載內容,並且不瞭解您的MVC項目中的內容。您能否發佈包含彈出窗口的局部視圖的內容,並詳細說明您希望傳遞的值。 –

+0

嗨rory,我沒有通過加載部分視圖的名稱我已經通過的行動方法的名稱來呈現局部視圖,這段代碼是爲我工作,唯一的問題是我不知道如何傳遞值從父屏幕到正在返回部分視圖的操作方法。謝謝 – Parikshit

+0

對不起 - 我的壞,誤解你的OP。 –

回答

2

你可以在你的控制器傳遞數據以JSON格式的看法是這樣

$("#ModifyAgRule").load('@Url.Action("AuthorityGridModify")', 
           { 'propertyName' : 'propertyValue', 
           'propertyName2' : 123 }); 

public ActionResult AuthorityGridModify(string propertyName, int propertyName2) 
{ 
    // propertyName´s value is propertyValue 
    return View(); 
} 

希望這有助於!

+0

我將如何能夠在操作方法中接收這些數據,並將它作爲字符串接收到操作方法的參數中?應該我的行動方法看起來像這樣控制值和controlValues函數AuthorityGridModify(byval controlValues爲字符串)將持有從jquery傳遞的值? – Parikshit

+0

我的答案顯示您如何接收數據。類型取決於您發送的數據。在我的示例中,它是一個字符串,但它可以是int,數組等等。 – dknaack

+0

您可以分別傳遞多個控件的值,而不只是一個變量。 – IsmailS

相關問題