2009-04-12 35 views
3

入力制御値(たとえばtextbox1.valueまたはjavascript変数)を、コントローラのアクションメソッド(パラメータとして)にフォームポストなしで渡したいとします。 Ajax.ActionLink)。以下のコードをご覧ください。ASP.NET MVCで入力値またはJavaScript変数を取得するAjax.ActionLink

new {name = textbox1.value}のようなものをAjax.ActionLinkに割り当てることは可能ですか?

ビュー

<input type="text" id="textbox1" /> 
<%= Ajax.ActionLink("mylink", "linkfunction", new {name = textbox1.value}, new AjaxOptions { UpdateTargetId = "result"}) %> 
<span id="result"></span> 

とコントローラのアクションは次のようになります。これは、これに似ている

public string linkfunction(string name) 
{ 
    return DateTime.Now.ToString(); 
} 

答えて

1

ASP.NET MVC : AJAX ActionLink- Target an HTML attribute

プラス、あなたはに渡す必要はありませんアクションに名前を制御します。

+0

ありがとうございましたが、私の質問はあなたを混乱させました。テキストボックス1の値を私のコントロールにlinkfunctionパラメータとして渡したいので、Ajax.ActionLinkでtextbox1.valueを渡す方法が必要です。私はそれをする方法を知らない。 –

+0

あなたはどのようにタスクを達成するのか把握することができましたか?私はおそらくあなたと同じボートにいます。あなたが解決策を見つけたのか不思議です。 –

0

私は私のAJAXリクエストを作るためにjQueryを使用した以外、これと同じ問題を抱えていた:

$('#ajax-content').load('<%= this.Url.Action("Details", "Page", new { id = someJavascriptVariable }) %>'); 

私はそれがこのように動作するようになった:

$('#ajax-content').load('<%= this.Url.Action("Details", "Page",) %>' + '/' + someJavascriptVariable); 

それとも、あなたのケースでは、それは

$('#ajax-content').load('<%= this.Url.Action("Details", "Page",) %>' + '?name=' + textbox1.value); 
+0

これを少しきれいにするには、loadメソッドのデータ引数としてキーと値のペアを渡すことができ、jqueryはconcatentationなどを処理します。 –

+0

$( '#ajax-content')。load( '<%= this。 Url.Action( "詳細"、 "ページ")%> '、{name = textbox1.value}); –

0

私は同様の問題がありました。それは、これらの機能は、残りは場所に落ちた文字列を返すことを私に指摘された後は - そう、私はこのスニペットをテストしていませんが、このような何かが私のために非常によく働い次

Ajax.ActionLink("mylink", "linkfunction", 
    new {name = __MyValue__}, new AjaxOptions 
    { UpdateTargetId = "result"}).Replace("__MyValue__", textbox1.value) 

を試してみてください。

幸運。

関連する問題