2013-02-12 80 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