2011-07-18 11 views
0

私は、次のコードを持っている:それは良い作品が、私は私のユーザーから隠さデータストア= XYZを持っていると思いJavascriptから新しいページにパラメータを渡すにはどうしたらいいですか?

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

を。この情報を渡すことができる別の方法がありますので、MVCコントローラで読み込むことができます。現在、私はこのようにそれを読む:

public ActionResult Create(string datastore) 
    { 

このメソッドの内部データストアの値が私に提供されています。

答えて

0

クッキーはデータストアの値をクッキーに入れてユーザーから隠すことができますが、クッキーはしばらくしておく設定に最適ですが、1ページだけの設定ではありません。

または、投稿を使用して、作成情報を隠しフォームに入れて送信することができます。

または、Ajax呼び出しを使用して作成した後、自分でページを変更することができます。

これ以外の場合は、使用しているクエリパラメータが、新しいページのページレベルパラメータを指定する標準的な方法です。

0

同じウェブサイトに滞在している場合は、コントローラにデータをpostできます。ポストコレクションからデータを取得し、あなたのURLはクエリ文字列パラメータを表示しません。

ただ、そのID SelectedDataStoreがあなたのURLに設定されたアクションとタグ内にあり、ここで

を投稿する設定方法は、送信ボタンと1つの簡単な例であるコントロールを使用して、フォームをラップ:

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

メソッドをPOSTに設定してフォームタグでコードを囲みます。また、作成アクションの上にHttpPost属性を追加します。これにより、クライアントにクエリ文字列値が表示されずにデータがアクションに送信されます。フォーム内のアクション属性で指定した別のアクションに投稿している場合。たとえば、

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

[作成]アクションでこれが選択され、残りの処理が実行されます。このことができます

希望、

Huske

関連する問題