2017-03-29 6 views
0

国の選択ボックスが変更された場合は、国の資本名を[場所]フィールドに入力します。国が変更されたときにコントローラにコールバックするには、これをどのようにセットアップできますか?選択ボックスが変更されたときにコントローラを呼び出す方法は?

<div class="well"> 
    <form method="post" asp-action="Jobs" asp-antiforgery="true"> 
     <div class="form-inline"> 
      <div class="input-group"> 
       <span class="input-group-addon">@Localizer["Country"]</span> 
       <select class="form-control" asp-for="CountryCode" asp-items="ViewBag.Countries" value="@Model.CountryCode"> 
        <option disabled selected value="">@Localizer["ChooseCountry"]</option> 
       </select> 
      </div> 
      <div class="input-group"> 
       <span class="input-group-addon">@Localizer["Where"]</span> 
       <input asp-for="Where" class="form-control" [email protected]["EnterCityToSearch"] value="@Model.Where"/> 
      </div> 
      <div class="input-group"> 
       <span class="input-group-addon">@Localizer["What"]</span> 
       <input asp-for="What" class="form-control" placeholder="@Localizer["EnterTypeOfJob"]" [email protected]> 
      </div> 
      <button type="submit" class="btn btn-primary"> 
       @Localizer["Search"] 
       <span class="glyphicon glyphicon-search"></span> 
      </button> 
     </div> 
    </form> 
    @*<a class="text" role="button" asp-action="ChangeSearchMetode" asp-antiforgery="true">Link Button</a>*@ 
</div> 

ありがとうございます!

答えて

1

あなたはJqueryも使用していると仮定します。私はあなたのコントローラのアクションは、名前IDでのparamaterを期待していることを仮定してい

$("#CountryCode").on('change', function(){ 

     $.ajax({ 
      url: 'controller action url here' 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      data: JSON.stringify({ Id: $("#CountryCode").val()}), 
      cache: false, 
      async: true, 
      success: function(data) { 
       //now u have data. set it where and as u want 
      }, 
      error: function() { 
       //your exceptional handler 
      } 
     }); 
}); 

:あなたはこれを達成することができます。上記のajax関数はあなたのコントローラーアクションメソッドにヒットします。コントローラでは、jsonでデータを返し、Ajaxコールの成功関数で使用する必要があります。

+1

'[asp-for =" CountryCode "]'で選択することはできません。これは、ASP.NET Coreの一部であるタグヘルパーコードです。レンダリングされたHTMLは、selectに 'CountryCode'のIDと名前の両方を持たせる必要があります。そのため、jQueryのいずれかで選択することができます。 –

+0

お返事ありがとうございます。 url: '@ Url.Action( "ChangeCountry"、 "JobSearch")、および成功とエラーが発生したときにアラートを実行しました。 - それは動作しませんでした。私は決してコントローラへのコールバックを持っていません。私もallert信号を持っていません。 – BEO

+0

あなたのコントローラはいくつかの領域で定義されていますか?あなたも同様に領域を指定する必要があります。コントローラのアクションのパラメータ名は、AJAX呼び出しで渡すものと同じでなければなりません。 –

関連する問題