2011-03-27 149 views
0

我在cshtml視圖中有一個按鈕。每次掃描一個項目時都會點擊它。 用戶必須做到一個一個,一旦所有的項目已被掃描..我想要操作/彈出一個新的窗口加上重定向他到另一個頁面..條件無論是最後一項..是在控制器方法中檢查。
我怎樣才能調用JavaScript來從控制器打開新窗口..在我的'redirecttoaction'之前?從mvc3控制器調用javascript方法?

有沒有更好的方法來做到這一點?

回答

0

它不乾淨,從控制器調用JavaScript。相反,將檢查其最後一項的檢查邏輯移到客戶端並根據需要調用適當的控制器操作。

+0

mahesh..this將是一個JavaScript窗口。無論決定是在哪裏進行的。控制器操作必須調用javascript window.open – hillary 2011-03-27 04:53:49

+0

然後,爲什麼不檢查該目標是否爲重定向操作,然後檢查其最後一個元素的邏輯? – 2011-03-27 04:59:14

+0

有兩個動作需要基於page-A的決定。1.打開這個彈出窗口2.重定向到頁面B或C.我考慮把這個彈出式javascript放在後續頁面的document.ready中。但有時後面的頁面是B..有時C通過B ..有時直接到C.所以..這不是一個解決方案 – hillary 2011-03-27 05:05:00

2

這裏的一個樣品圖案:

public ActionResult Index() 
{ 
    var model = new MyViewModel(); 
    return View(model); 
} 

[HttpPost] 
public ActionResult Index(MyViewModel model) 
{ 
    // TODO Process the scanned code model.Code 

    if (IsLastItem()) 
    { 
     model.IsLast = true; 
    } 
    return View(model); 
} 

和視圖內:

@model MyViewModel 
@using (Html.BeginForm()) 
{ 
    @Html.TextBoxFor(x => x.Code) 
    <input type="submit" value="OK" /> 
} 

<script type="text/javascript"> 
@if (Model.IsLast) 
{ 
    <text> 
    window.open('@Url.Action("foo")', 'foo'); 
    window.location.href = '@Url.Action("bar")'; 
    </text> 
} 
</script> 
+0

達林..這是它是如何現在.. [HttpPost] 公共的ActionResult指數(MyViewModel模型) { // TODO處理掃描的代碼model.Code 如果(IsLastItem()){ 模型 .IsLast = true; return redirecttoaction(「another page」); } return View(model); } 正如你看到的,它不回發到view..but被重定向到另一個頁面.. 所以basically..i想彈出加重定向.. 所以我試圖爲在重定向之前調用彈出窗口。 – hillary 2011-03-27 13:08:12

相關問題