ASP.NET MVCでAutoPostBack

Category: fx aspnet_ja

Question

さとさと1 on Tue, 03 Jun 2014 02:23:54


質問をさせてください。
現在下記環境にてASP.NET MVC4を勉強中です。

環境:VisualSutudio2012 Pro
OS:Windows7(64bit)

実現したい事
ビューに設定されているテキストボックスの値が
変更された時、データベースと照合させて該当する値を
別のテキストボックスへセットしたい。


ビューにはテキストボックスが二つあります。
@Html.EditorFor(model => model.user_id)
@Html.EditorFor(model => model.user_Name)


@Html.EditorFor(model => model.user_id)
上記の値が変更された時、データベースより該当するuser_Nameを
@Html.EditorFor(model => model.user_Name)に表示させたいのですが・・・

ASP.NET WebFormであればAutoPostBack等を使用して値を設定していたのですが。
MVCではどのように実現するのでしょうか?どなたか経験ありましたら教えてください。

Replies

SurferOnWww on Tue, 03 Jun 2014 03:29:45


MVC ではポストバックしてサーバーで処置という Web Forms アプリの手法は取れないのはご存知ですよね?

Ajax を使ってアクションメソッドを呼び出してはいかがですか? 以下のような感じです。

(1) id を渡すと DB を検索して該当する名前を返すアクションメソッドを定義する。

(2) @Html.EditorFor(model => model.user_id) のテキストボックスから id 値を取得。jQuery Ajax を利用して上記 (1) のアクションメソッドに id 値を送信。アクションメソッドから戻ってきた名前を @Html.EditorFor(model => model.user_Name) のテキストボックスに書き込む JavaScript 関数を定義する。

(3) @Html.EditorFor(model => model.user_id) のテキストボックスの onchange イベントに上記 (2) の JavaScript 関数をリスナーとしてアタッチする。

さとさと1 on Tue, 03 Jun 2014 06:24:23


回答有難う御座います。jQuery Ajaxですか、あまりサンプルが無いですが頑張って勉強してみます。

SurferOnWww on Tue, 03 Jun 2014 07:50:35


asp.net mvc jquery ajax action method 等をキーワードにググるといくつか参考になるページが見つかると思います。

例えば下記:

AJAX calls to ASP.NET MVC action methods using jQuery
http://bobcravens.com/2009/11/ajax-calls-to-asp-net-mvc-action-methods-using-jquery/

How to make AJAX-requests to ASP.NET MVC application using jQuery
http://weblogs.asp.net/gunnarpeipman/how-to-make-ajax-requests-to-asp-net-mvc-application-using-jquery

jQuery Ajax GET and POST calls to Controller's Method in MVC
http://www.itorian.com/2013/02/jquery-ajax-get-and-post-calls-to.html