如何從控制器打開多個窗口?如何從asp.net中的控制器打開多個窗口MVC
例如,我有一個控制器可以獲取所有客戶端,並且對於每個客戶我都希望他的信息顯示在不同的窗口或選項卡中。 使用asp.net MVC 4可以嗎?
如何從控制器打開多個窗口?如何從asp.net中的控制器打開多個窗口MVC
例如,我有一個控制器可以獲取所有客戶端,並且對於每個客戶我都希望他的信息顯示在不同的窗口或選項卡中。 使用asp.net MVC 4可以嗎?
我已經完成了這個確切的事情,它是基於一個按鈕,它會根據參數觸發多個窗口。這是你可以做的。你的控制器會是這樣......
[HttpPost]
public ActionResult CopyOpportunitySave(CopyOpportunityViewModel model)
{
ViewModel model = new ViewModel();
foreach (var url in "List object that contains URLS")
{
model.ClientURLs.Add(url);
}
return View("CopyOpportunity", model);
}
所以,現在你的模型類就會像 public List<string> ClientURLs{get; set;}
這是由你需要做的window.Open所有URL填充的屬性。
和現在,在你的看法,你可以說
@foreach (var u in ViewModel.ClientURLs)
{
<script>
window.open(u);
</script>
}
就像只要得到執行foreach循環裏面的腳本,它將工作
只是要打開的客戶端信息的鏈接(<a></a>
)有target = "_blank"
:
<a href="Clients/Details/1" target="_blank"> John Smith </a>
如果您使用HTML輔助也可能是這樣的:
@Html.ActionLink("John Smith", "Details", "Clients", new {id = 1}, new { target = "_blank"})
這將打開一個新的瀏覽器選項卡與您需要的頁面。
這將不可能通過使用本機MVC 4.然而,人們可以想到一些可能類似於您的要求的解決方法。對於初學者來說,是否有必要爲每個客戶實際打開一個「瀏覽器選項卡」,或者這也可能是一個HTML文檔中每個客戶端的選項卡頁面。如果後者是一個選項,您可以看看HTML中提供的不同「標籤」控件。
如果您確實需要爲每個客戶端創建一個新的瀏覽器窗口,我的提示是將可能的客戶端列表返回到一個HTML頁面,然後在該HTML頁面中使用腳本來爲每個客戶端打開一個彈出窗口。對於每個彈出窗口/客戶端,都需要向服務器發送附加請求。
是的,我想每個客戶一個新的瀏覽器窗口從控制器自動打開。所以對於這個腳本,你正在談論使用AJAX? – Natalia
不需要。您不需要使用AJAX,除非您想使用JQuery類似的東西來創建一個頁面內彈出窗口或類似的東西。您可以簡單地對一組客戶端名稱/標識使用腳本來動態創建要在新窗口中打開的URL。看看CSharper的答案。他使用了不同的方法,但效果相同。無論哪種方式,你將不得不在客戶端使用腳本。 –
如果我將一個actionlink與一個視圖和一個對象一起傳遞,window.open將不起作用......它將在同一個窗口中顯示所有內容。 – Natalia