2

ASP.NET MVC(-4) は初めてです。

jquery を使用して自分の Web サイトから Ajax 呼び出しを行い、返された html を使用してページに div を入力したいと考えています。これは div にすぎないため、ヘッダーと本文全体を含む完全な html ページは必要ありません。

受信側はどうすればいいですか?

通常のビュー、部分的なビュー、特別なタイプのリソースまたはハンドラー、またはその他の魔法のいずれである必要がありますか?

4

3 に答える 3

3

これを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";
}
于 2012-08-23T14:20:51.690 に答える
2

これは div にすぎないので、ヘッダーと本文全体を含む完全な html ページは必要ありません

あなたはPartialViewが欲しい

于 2012-08-23T14:14:06.350 に答える
1

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します。

于 2012-08-23T14:11:14.550 に答える