[英]How do I call/open a Razor view on a button click
我在視圖中有一個網格,用戶可以選擇從網格中選擇一行/多行,然后單擊“下一步”按鈕,我需要向他們顯示另一個視圖,他們可以在其中執行其他任務。
我從同一控制器創建了兩個視圖。
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")');
結果:
我在這里缺少什么?
您的 url 不正確的原因是@Url.Action("Final", "Batch")
未能成功解析。 當我輸入錯誤的URL: window.open('Url.Action("Final", "Batch")')
(缺少@
會導致解析失敗),生成的url如下:
但是我可以看到您以正確的方式對其進行了編碼: window.open('@Url.Action("Final", "Batch")')
。所以我猜這個 js 代碼可能放在一個外部 js 文件中。如果它是一個外部 javascript 文件,無法解析。 也會出現上述情況。
如果您必須將@Url.Action
放在外部 JavaScript 文件中,您可以向 Next 按鈕添加屬性。
<button class="btn-outline-info" id="btnNext" requestUrl="@Url.Action("Final", "Batch")">Next</button>
然后外部js通過屬性獲取url。
window.open(document.getElementById('btnNext').getAttribute('requestUrl'))
如果您的 js 代碼不在外部文件中,請檢查@Url.Action
是否損壞。您可以在 razor 視圖中編寫@Url.Action("Final", "Batch")
(例如 Inde.cshtml) :
@Url.Action("Final", "Batch")
然后運行應用程序以查看 url,如果它如下所示:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.