2013-02-12 2 views
4

http://localhost:49397/ChildCare/SponsorChild/83어떻게 MVC4에서 URL의 매개 변수를 숨기기

이 내가 테이블에 액션 링크를 클릭 액션을 편집하는 리디렉션, 지금 난에 숫자 '83'을 숨기기 할 때 생성되는 링크입니다 내가이 acheive 수있는 방법 URL, 내가 VS2010 MVc4 면도기를 사용하고

, 내 나쁜 engllish에 대한 죄송 사전

+3

검은 마법 사용 – Kowser

+0

빠른 답장을 보내 주셔서 감사합니다. – Gowtham

+2

POST 대신 GET을 사용하십시오. – David

답변

4

당신이 링크 작업하는 경우에 덕분에, 링크는 서버에 GET 요청에 의해 보내 매개 변수는 URL에 있습니다.

<a href="my/url" data-id="83> link </a> 
: 예를 들어, 매개 변수가 data-id="83" 같은 data 속성을해야하고 우편으로 데이터를 전송하는 양식을 작성하고, 속성 data-x로 태그 input을 만드는 것 -

1 : 당신은 두 가지 옵션이있을 수 있습니다

다음 형태로 만들 필요가 자바 스크립트와 : jQuery('form').submit()

: 같이 제출

<form method="POST" action="my/url"> 
    <input value="83 name="id" type="hidden" /> 
</form> 

및 JS 양식 이벤트를 실행

html로에게 : 점 하나 How to encrypt and decrypt data in MVC?

편집

예 : -

2 컨트롤러에서 매개 변수를 가져 해독 한 후 암호화 할 수 있습니다

<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 

}); 
012 3,516,
+0

답장을 보내 주셔서 감사합니다, 주어진 링크에서 답변을 찾았습니다. 나는 data- attributes.i를 사용하는 방법이 없습니다. Encoding.UTF8.GetBytes()는 인코딩, 디코딩 방법을 사용합니다. 다시 한 번 감사합니다 – Gowtham

+0

@ user2032722 포인트 1에 대한 예제를 설명했습니다 –

2

우리는 그 다음 로컬 매개 변수 저장을 소요하고 Session 또는 Cache 또는 무엇이든에서 매개 변수를 읽어 곳 RestoreSavedSessionValidation를 호출

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

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

당신은 RestoreSavedSession 충돌 변수를 숨길 같은 두 페이지를 사용합니다.

+1

이것은 멋지고 간단한 해결책입니다. –

관련 문제