我的母版页中有一个链接,上面写着“发送反馈”,它会打开一个新网页。
当我转到该新页面时,我有一个表单,我想用该人单击“发送反馈”按钮时所在的 URL 填充文本框。
如何获取当前 URL 并将其传递出去?我应该在客户端 (jQuery) 还是在 asp.net-mvc 服务器端执行此操作?
您可以将
Request.Url.RawUrl
作为查询字符串参数传递给 Send feedback
操作,该操作本身可以将其存储为表单中的隐藏字段,该字段将被重新发布回来,并允许在提交反馈后重定向回原始页面。示例:
@Html.ActionLink(
"Send feedback",
"Index",
"Feedback",
new { returnUrl = Request.Url.RawUrl }
)
无需传递 URL,因为您可以在“发送反馈”操作中检查
UrlReferrer
对象上的 Request
属性。
将此用作您的控制器操作:
public ActionResult SendFeedback(string message) {
var referrer = Request.UrlReferrer;
feedbackService.Send(message, referrer);
}
您可以使用
在服务器端(首选)执行此操作要在客户端实现它,请使用隐藏变量,然后使用表单帖子。
类似:
<input type="hidden" id="referredPage" name="referredPage"/>
<script type="text/javascript">
$(function(){
$("form").submit(function(){
$("#referredPage").val(window.location.href);
});
})
<script>