簡體   English   中英

在 ASP.NET MVC 5 中提交表單后返回到同一視圖

[英]Return to same view after form submit in ASP.NET MVC 5

我創建了一個聯系表格。 在此聯系表中,用戶可以輸入諸如名字、姓氏、電話號碼等數據。 用戶提交表單后,我執行服務器端驗證。 如果驗證成功和不成功,我想將用戶重定向回相同的視圖。 這沒有問題。 但是視圖的滾動位置再次位於頂部。 但表格在最底層。 用戶應該直接再次顯示表單。 換句話說:我想將相同的視圖返回給用戶,但保持滾動位置。 我如何在 ASP.NET MVC 5 中實現這一點?

我的服務器端代碼如下所示:

public ActionResult Contact(ServiceModel model)
        {
            if (ModelState.IsValid)
            {
                ViewBag.SuccessMessage = " succeeded";
                return View("Index");
            }
            else
            {
                if (!this.IsCaptchaValid(""))
                {
                    ViewBag.ErrorMessage = "Error. Try again.";
                }
                return View("Index", model);
            }
        }

謝謝你。

感謝 Natha Miller 的幫助。 解決方案:在 ViewBag 中,您必須輸入要跳回的部分。 例如,這可以是控制器中的以下指令:

ViewBag.Section = "mySection"; //This refers to the element in the .cshtml page that has the ID 'mySection'.

然后,如果設置了 ViewBag 中的 Section 變量,則必須在 JavaScript 中檢入 .cshtml 文件。 如果是這種情況,那么您必須跳到某個位置。 其工作原理如下:

@if (ViewBag.Section!=null)
{
    <script>
        $(function () {              
                window.location.hash = '#@ViewBag.Section';
        });
    </script>
}

解決方案來自 Stackoverflow 上已經提出的一個問題。 是它的鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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