ASP.NET MVC(-4) は初めてです。
jquery を使用して自分の Web サイトから Ajax 呼び出しを行い、返された html を使用してページに div を入力したいと考えています。これは div にすぎないため、ヘッダーと本文全体を含む完全な html ページは必要ありません。
受信側はどうすればいいですか?
通常のビュー、部分的なビュー、特別なタイプのリソースまたはハンドラー、またはその他の魔法のいずれである必要がありますか?
ASP.NET MVC(-4) は初めてです。
jquery を使用して自分の Web サイトから Ajax 呼び出しを行い、返された html を使用してページに div を入力したいと考えています。これは div にすぎないため、ヘッダーと本文全体を含む完全な html ページは必要ありません。
受信側はどうすればいいですか?
通常のビュー、部分的なビュー、特別なタイプのリソースまたはハンドラー、またはその他の魔法のいずれである必要がありますか?
これをPostおよびGet操作で使用できます
脚本
$.ajax({
url: '@Url.Action("SomeView")',
type: 'GET',
cache: false,
data: { some_id: id},
success: function(result) {
$('#container').html(result);
}
});
コントローラ
public ActionResult SomeView(int some_id)
{
....
return PartialView();
}
意見
<div id="container">
@Html.Partial("SomeViewPartial")
</div>
または、AjaxActionLink を使用できます
意見
@Ajax.ActionLink("text", "action", "controller",
new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "container",
OnSuccess = "onSuccess",
})
脚本
function onSuccess(result) {
alert(result.foo);
}
コントローラ
public ActionResult SomeView(int some_id)
{
return Json(new { foo = "bar" }, JsonRequestBehavior.AllowGet);
}
また、Ajax.ActionLink を使用して、コンテンツ ページのみを更新することもできます。これを使用して:
の~/Views/ViewStart.cshtml:
@{
Layout = Request.IsAjaxRequest() ? null : "~/Views/Shared/_Layout.cshtml";
}
これは div にすぎないので、ヘッダーと本文全体を含む完全な html ページは必要ありません
あなたはPartialViewが欲しい
Layout
プロパティ値が null に設定されたビューを返すことができます
public class UserController : Controller
{
public ActionResult GetUserInfo()
{
return View();
}
}
そしてGetUserInfo.cshtml
@{
Layout=null;
}
<h2>This is the UserInfo View :)</h2>
また、jQuery ajax メソッドを使用して任意のページから呼び出すことができます
$("#someDivId").load("@Url.Action("User","GetUserInfo")");
Same Action メソッドで Ajax 呼び出しと通常の GET 要求呼び出しを処理する場合 (Ajax では部分ビューを返し、通常の Http GET 要求では通常のビューを返します)、Request.IsAjax
プロパティを使用してそれを決定できます。
public ActionResult GetUserInfo()
{
if (Request.IsAjaxRequest)
{
return View("Partial/GetUserInfo.cshtml");
}
return View(); //returns the normal view.
}
部分ビュー (レイアウトが null に設定されたビュー) が YourControllerName フォルダーにあるとViews/
仮定/Partial
します。