簡體   English   中英

如何在單擊按鈕時調用/打開 Razor 視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM