HTML ボタンを使用して、ac# クラス メソッドを呼び出そうとしました。別のトピックでは、人々は私に AJAX を使用するようアドバイスしました。私はさまざまなチュートリアルを見て、それを実装しようとしましたが、私にとってはうまくいきません。
今のところ、ボタンにポップアップが表示されるようにしたいだけです(メソッドが呼び出されていることがわかるように)呼び出したいメソッドは、クラス HomeController の setLang(string lang) です
これがonclickイベントの方法です
<input type="submit" onclick="setLanguage();" value="submit">
これはスクリプト部分です。これは同じページにあります
<script type="text/javascript">
function setLanguage() {
var lang = "en";
$.post('@Url.Action("setLang","HomeController")/' + lang,function(){
//i'm not expecting a result to process
});
}
</script>
しかし、ボタンをクリックしても何も起こりません。
私はここで何かを逃していますか?
編集:関数は呼び出されていますが、コールバックはありません
更新:まだ機能していません。これは私の現在のコードです(リクエストによる)
ボタン (index.aspx)
<input type="button" onclick="setLanguage();" value="submit">
関数 (index.aspx)
<script type="text/javascript">
function setLanguage() {
alert("this message shows");
$.post('Url.Action("setLang","Home")/?lang=' + lang,
function (data) {
alert("this message does not");
});
}
</script>
HomeController.cs で
public JsonResult setLang(string lang)
{
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(lang);
.....//a lot more code, until it reaches
return Json("Language: " + lang);
}