我在cshtml视图上有一个按钮..每次扫描一个项目时都会点击。 用户必须一个接一个地扫描所有项目。我想打开/弹出一个新窗口并将他重定向到另一个页面..条件是否是最后一个项目..正在检查在控制器方法中 在我的'redirecttoaction'之前,如何调用javascript从控制器中打开新窗口?
有更好的方法吗?
答案 0 :(得分: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>
答案 1 :(得分:0)
从控制器调用JavaScript并不干净。相反,将检查其最后一项的逻辑移动到客户端并根据需要调用适当的控制器操作。