问题描述
我在视图中有一个网格,用户可以选择从网格中选择一个/多个行,然后单击“下一步”按钮,我需要向他们显示另一个视图,以便他们可以执行其他任务。
我从同一控制器创建了两个视图。
public BatchController() : base("BATCH")
{
}
// GET: BatchProcess
public ActionResult Index()
{
return View();
}
public ActionResult Final()
{
return View();
}
JavaScript:
$("#btnNext").click(e => {
var url = "/Batch/Final";
window.open('@Url.Action("Final","Batch")');
结果:
我在这里想念什么?
解决方法
您的网址不正确的原因是Model.find({
"arrayOfUsers._id": 2
})
无法成功解析。当我输入错误的URL:@Url.Action("Final","Batch")
(缺少window.open('Url.Action("Final","Batch")')
会导致解析失败)时,生成的URL如下:
但是我可以看到您以正确的方式对其进行了编码:@
。因此,我猜这个js代码可能放在了外部js文件中。如果它是外部javascript文件,则无法解析。以上情况也会出现。
如果必须将window.open('@Url.Action("Final","Batch")')
放在外部JavaScript文件中,则可以将属性添加到“下一步”按钮。
@Url.Action
然后外部js通过属性获取网址。
<button class="btn-outline-info" id="btnNext" requestUrl="@Url.Action("Final","Batch")">Next</button>
如果您的js代码不在外部文件中,请检查window.open(document.getElementById('btnNext').getAttribute('requestUrl'))
是否损坏。您可以在剃刀视图中写入@Url.Action
(例如Inde.cshtml):
@Url.Action("Final","Batch")
然后运行该应用程序以查看网址,如下所示: