サンプル
コントローラ
SampleAjaxController.vb
Imports System.Web.Mvc
Namespace Controllers
Public Class SampleAjaxController
Inherits Controller
' GET: SampleAjax
Function Index() As ActionResult
Return View()
End Function
' ★ここ★
<ValidateAntiForgeryToken()>
Public Function SayHello(name As String) As ActionResult
' リクエストがAjax通信(非同期通信)である場合値を返す
If Request.IsAjaxRequest() Then
Return Json(New With {Key .ResultMessage = "Hello, " & name & "!"},
JsonRequestBehavior.AllowGet)
Else
' リクエストがAjax通信以外の場合、何もしない
Return New EmptyResult()
End If
End Function
End Class
End Namespace
ビュー
Index.vbhtml
@Code
ViewData("Title") = "Index"
End Code
<script src="~/Scripts/jquery-1.10.2.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>
<script src="~/Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="~/Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<-- ★ここ★ -->
@Using Ajax.BeginForm("SayHello",
New AjaxOptions With {
.HttpMethod = "POST",
.UpdateTargetId = "result",
.OnSuccess = "onSuccess",
.OnFailure = "onFail"})
@Html.TextBox("Name", "")
@Html.AntiForgeryToken()
@<input type="submit" value="Say Hello" />
End Using
<div id="result"></div>
<script type="text/javascript">
function onSuccess(data) {
$('#result').html(data.ResultMessage);
}
function onFail() {
$('#result').html("Fail...");
}
</script>