2013-04-29 54 views
0

我在JavaScript中的下列方法:如何在window.open方法中傳遞參數?

var string1 = "testing"; 
var date = "10/10/2012"; 

var win = window.open(BuildUrl(("report", "report"), "myreports", 
      "toolbar=0,statusbar=0,scrollbars=1,resizable=1,location=0"); 

function BuildUrl(controllerName, actionName) {   
    var TimeStamp = Number(new Date()); 
    var win = window.location; 
    return win.protocol + "//" + win.host + "/" + controllerName + "/" + actionName + '?_=' + TimeStamp ; 
} 

在C#中的控制器方法是這樣的:

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

現在我需要通過像名稱和日期參數,當URL被訪問到C#方法。我怎樣才能做到這一點?

回答

2

追加URL參數的格式如下:

<url>?param1=value1&param2=value... 

如果你需要傳遞值的數組,然後使用相同的名稱爲參數

<url>?arr=value1&arr=value2... 

所以你的URL會看起來像

domain.com/Controller/Report?name=xyz & date = 20


更新:

接受他們的行動,聲明參數傳遞給操作。

public ActionResult Report(string name, DateTime date) 
{ 
    ... 
} 

在ASP.NET MVC閱讀上Model Binding

+0

如何在c#函數中接收它們? – Naruto 2013-04-29 10:58:05

+0

如果我們還有兩個以上的參數,我們必須使用&作爲分隔符嗎? – Naruto 2013-04-29 11:02:35

+0

是的,從'?'開始並使用'&'添加參數。 – 2013-04-29 11:03:28

1

我發現了一個更好的方式來傳遞參數彈出窗口,甚至從中檢索參數:

在主要頁面:

var popupwindow; 
var sharedObject = {}; 

function openPopupWindow() 
{ 
    // Define the datas you want to pass 
    sharedObject.var1 = 
    sharedObject.var2 = 
    ... 

    // Open the popup window 
    window.open(URL_OF_POPUP_WINDOW, NAME_OF_POPUP_WINDOW, POPUP_WINDOW_STYLE_PROPERTIES); 
    if (window.focus) { popupwindow.focus(); } 
} 

function closePopupWindow() 
{ 
    popupwindow.close(); 

    // Retrieve the datas from the popup window 
    = sharedObject.var1; 
    = sharedObject.var2; 
    ... 
} 

在彈出的窗口:

var sharedObject = window.opener.sharedObject; 

// function you have to to call to close the popup window 
function myclose() 
{ 
    //Define the parameters you want to pass to the main calling window 
    sharedObject.var1 = 
    sharedObject.var2 = 
    ... 
    window.opener.closePopupWindow(); 
} 

就是這樣!

  • 你沒有設置參數,在彈出窗口的URL:

    而且因爲這是非常方便的。

  • 沒有可定義的表格
  • 您可以使用illimited參數even對象。雙向:你可以傳遞參數AND,如果你想要的話,可以檢索新的參數。
  • 很容易實現。

玩得開心!

相關問題