2011-07-18 7 views
0

나는 다음과 같은 코드가 있습니다 :Javascript에서 매개 변수를 새 페이지로 전달하는 방법은 무엇입니까?

$('#CreateButton').click(function (event) { 
var datastoreValue = $("#SelectedDatastore").val(); 
window.location = "/Q/Create?datastore=" + datastoreValue; 
}); 

그것은 잘 작동하지만 데이터 저장소 = XYZ 내 사용자로부터 숨겨 가지고 싶습니다. 이 정보를 전달할 수있는 또 다른 방법이있어서 MVC 컨트롤러에서 읽을 수 있습니다. 현재 다음과 같이 읽었습니다 :

public ActionResult Create(string datastore) 
    { 

이 메서드 내부에 데이터 저장소 값을 사용할 수 있습니다.

답변

0

데이터 저장소 값을 쿠키에 넣으면 쿠키를 사용자에게 표시하지 않을 수 있지만 쿠키는 한 페이지에만 적용되는 설정이 아니라 잠시 동안 사용하려는 설정에 가장 잘 사용됩니다.

또는 게시를 사용하여 숨겨진 양식에 정보를 작성하여 제출할 수 있습니다.

또는 Ajax 호출을 사용하여 생성 한 다음 나중에 페이지를 변경할 수 있습니다.

그렇지 않으면 사용중인 쿼리 매개 변수가 새 페이지에 대한 페이지 수준 매개 변수를 지정하는 표준 방법입니다.

0

동일한 웹 사이트에 머무른 경우 컨트롤러에 데이터를 post 수 있습니다. 게시 컬렉션에서 데이터를 가져오고 URL에 쿼리 문자열 매개 변수가 표시되지 않습니다.

<FORM action="/Q/Create" method="post"> 
    <INPUT id="SelectedDataStore" /> 
<INPUT type="submit" value="Send"> 
</FORM> 
:

그냥 id가 귀하의 URL로 설정 작업과 여기에

게시하도록 설정하는 방법과 태그에 SelectedDataStore있는 제출 버튼을 하나의 간단한 예입니다 컨트롤과 양식을 포장

2

메소드를 POST로 설정하여 양식 태그로 코드를 둘러 쌉니다. 또한 Create 동작 위에 HttpPost 특성을 추가하십시오. 이렇게하면 클라이언트가 쿼리 문자열 값을 보지 않고도 데이터를 작업에 게시합니다. 양식 내의 작업 속성에 해당 작업을 지정하는 다른 작업에 게시하는 경우. 예를 들어,

<% using (Html.BeginForm("Create", "MyController", null, FormMethod.Post)) { %> 
<%: Html.Label("Data store value: ")%> 
<%: Html.TextBox("datastore") %> 
<input type="submit" value="Submit" /> 
<% } %> 

작성 액션이이를 선택하고 나머지 작업을 수행합니다. 이 도움이

희망,

Huske

관련 문제