如何跟踪我在 asp.net-mvc 中所在的页面

问题描述 投票:0回答:3

我的母版页中有一个链接,上面写着“发送反馈”,它会打开一个新网页。

当我转到该新页面时,我有一个表单,我想用该人单击“发送反馈”按钮时所在的 URL 填充文本框。

如何获取当前 URL 并将其传递出去?我应该在客户端 (jQuery) 还是在 asp.net-mvc 服务器端执行此操作?

jquery asp.net-mvc
3个回答
7
投票

您可以将

Request.Url.RawUrl
作为查询字符串参数传递给
Send feedback
操作,该操作本身可以将其存储为表单中的隐藏字段,该字段将被重新发布回来,并允许在提交反馈后重定向回原始页面。示例:

@Html.ActionLink(
    "Send feedback", 
    "Index", 
    "Feedback", 
    new { returnUrl = Request.Url.RawUrl }
)

1
投票

无需传递 URL,因为您可以在“发送反馈”操作中检查

UrlReferrer
对象上的
Request
属性。

将此用作您的控制器操作:

public ActionResult SendFeedback(string message) {
   var referrer = Request.UrlReferrer;
   feedbackService.Send(message, referrer);
}

1
投票

您可以使用

在服务器端(首选)执行此操作

Request.UrlReferrer

要在客户端实现它,请使用隐藏变量,然后使用表单帖子。

类似:

<input type="hidden" id="referredPage" name="referredPage"/>

<script type="text/javascript">
    $(function(){
        $("form").submit(function(){
            $("#referredPage").val(window.location.href);
        });
    })
<script>
© www.soinside.com 2019 - 2024. All rights reserved.