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