如何隐藏URL的参数在MVC4
http://localhost:49397/ChildCare/SponsorChild/83
如何隐藏URL的参数在MVC4
这是链接,当我在表上的操作链接点击并重定向到编辑动作,现在我想隐藏的号码“83”正在产生我怎样才能达致这网址,
我使用VS2010 MVc4剃须刀, 对不起,是我不好engllish 感谢提前,如果你使用环节的工作
,链接发送通过GET
请求到服务器,然后参数在url中。你可能有两种选择:
1 - 参数必须是像data-id="83"
data
属性,然后创建一个表格邮寄发送数据,并与属性data-x
创建标签input
,例如:
<a href="my/url" data-id="83> link </a>
然后你需要创建表格的javascript:
<form method="POST" action="my/url">
<input value="83 name="id" type="hidden" />
</form>
并运行JS的形式提交事件,如:jQuery('form').submit()
2 - 你可以加密,然后解密得到的控制器参数:How to encrypt and decrypt data in MVC?
编辑
举例点之一:
HTML:
<div id="container-generic-form" style="display:none;">
<form action="" method="POST"></form>
</div>
<a href="my/url" data-id="83" data-other="blue" class="link-method-post">my link</a>
JS:
$(function() { // document ready
var controlAnchorClickPost = function(event) {
event.preventDefault(); // the default action of the event will not be triggered
var data = $(this).data(),
form = $('#container-generic-form').find('form');
for(var i in data) {
var input = $('<input />', {
type: 'hidden',
name: i
}).val(data[i]);
input.appendTo(form);
}
form.submit();
};
$('a.link-method-post').on('click', controlAnchorClickPost); //jquery 1.7
});
感谢回复,在给定的链接找到答案,我不怎么处理data-attributes.i使用Encoding.UTF8.GetBytes()编码,解码方法。再次感谢 – Gowtham 2013-04-20 07:58:01
@ user2032722我为你解释了第一点的例子 – 2013-04-20 15:26:43
我们用了两页一样,隐藏变量
public ActionResult RestoreSavedSession(string id)
{
Session["RestoreSavedSession"] = id;
return RedirectToAction("RestoreSavedSessionValidation");
}
public ActionResult RestoreSavedSessionValidation()
{
return View("RestoreSavedSessionValidation");
}
你打RestoreSavedSession
那么它需要参数存储在本地,并调用RestoreSavedSessionValidation
它从Session或Cache或任何读取参数。
这是一个不错的简单解决方案,我想。 – 2018-02-03 22:53:11
使用黑魔法 – Kowser 2013-02-12 06:49:06
感谢您的快速回复,能否详细解释我 – Gowtham 2013-02-12 06:51:57
使用POST而不是GET – David 2013-02-12 08:10:17