2013-02-12 83 views
4

http://localhost:49397/ChildCare/SponsorChild/83如何隐藏URL的参数在MVC4

这是链接,当我在表上的操作链接点击并重定向到编辑动作,现在我想隐藏的号码“83”正在产生我怎样才能达致这网址,

我使用VS2010 MVc4剃须刀, 对不起,是我不好engllish 感谢提前,如果你使用环节的工作

+3

使用黑魔法 – Kowser 2013-02-12 06:49:06

+0

感谢您的快速回复,能否详细解释我 – Gowtham 2013-02-12 06:51:57

+2

使用POST而不是GET – David 2013-02-12 08:10:17

回答

4

,链接发送通过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 

}); 
+0

感谢回复,在给定的链接找到答案,我不怎么处理data-attributes.i使用Encoding.UTF8.GetBytes()编码,解码方法。再次感谢 – Gowtham 2013-04-20 07:58:01

+0

@ user2032722我为你解释了第一点的例子 – 2013-04-20 15:26:43

2

我们用了两页一样,隐藏变量

public ActionResult RestoreSavedSession(string id) 
    { 
     Session["RestoreSavedSession"] = id; 
     return RedirectToAction("RestoreSavedSessionValidation"); 
    } 

    public ActionResult RestoreSavedSessionValidation() 
    { 
     return View("RestoreSavedSessionValidation"); 
    } 

你打RestoreSavedSession那么它需要参数存储在本地,并调用RestoreSavedSessionValidation它从SessionCache或任何读取参数。

+1

这是一个不错的简单解决方案,我想。 – 2018-02-03 22:53:11