1

Ajaxを使用してポップアップを準備したいのですが、Partialを追加する方法がわかりません(エラーが発生しました)

問題

window.location = '@Url.RenderPartial("DodajTemat", Model)';

すべての例:

$("#dodajTemat_U").click(function () {
        $.ajax({
            url: '@Url.Action("DodajTemat", "StronaGlowna")', 
            dataType: "json",
            type: "POST",
            async: false,
            error: function () {
            },
            success: function (data) {
                if (data.Success) {
                    window.location = '@Url.RenderPartial("DodajTemat", Model)';
                }
            }
        });
    });
4

2 に答える 2

3

ポップアップ/ライトボックス/オーバーレイを表示したい場合は、HTMLとCSSを使用してこれを作成するのが正しいアプローチであることをお勧めします。

部分的なビューに関しては、アクションメソッドによってこれが返されます。これを返すAjaxResultクラスを作成します。

public class AjaxResult
{
    public string Html { get; set; }
    public bool Success { get; set; }
}

次に、ajaxの結果は次のようになります

$("#dodajTemat_U").click(function () {
    $.ajax({
        url: '@Url.Action("DodajTemat", "StronaGlowna")', 
        dataType: "json",
        type: "POST",
        async: false,
        error: function () {
        },
        success: function (data) {
            if (data.Success) {
                $('body').append(data.Html);
            }
        }
    });
});
于 2013-03-20T13:37:12.513 に答える
2

HTML

ボタンをクリックすると、アクションとそれに対応するコントローラー情報をHTMLで宣言できます。非表示にすることもできます。

<div id="MyDiv" Control-Url = "@Url.Action("ActionName", "ControllerName")"
                Action-Url = "@Url.Action("ActionName", "ControllerName")">
</div>

JQuery

以下のコードで。

  1. 最初にコントロール/ポップアップをロードします。
  2. コントロール/ポップアップの情報を取得します

$('#dodajTemat_U').click(function () {
    var MyDiv = $('#MyDiv');
    var url = MyDiv.attr('Control-Url');
    MyDiv.load(url, function () {
        url = MyDiv.attr('Action-Url');
        $.ajax({
            url: url,
            async: true,
            type: 'POST',
            beforeSend: function (xhr, opts) {
            },
            contentType: 'application/json; charset=utf-8',
            complete: function () { },
            success: function (data) {
            }
        });
    });
});

あなたが注意を払うならば、上記のコードに注意してください、私は2つのURLをフェッチしています。

  1. ロード用のポップアップ/部分ビューの場合
  2. モデルの場合、モデル情報をポップアップに渡します。

モデル情報は、javaScriptからではなく、アクションメソッドからコントロールに送信する必要があります。

部分ビューロードのコントローラーアクション

//For loading the Pop-Up or for the Partial View
[HttpGet]
public PartialViewResult YourActionName()
{
    return PartialView("PartialViewName");
}

//For fetching the Model information and pass it to View.
public JsonResult ActionForGetInformation()
{
    return Json(Your Model Information goes here, JsonRequestBehavior.AllowGet);
}
于 2013-03-20T15:49:31.797 に答える