0

これはデフォルトでカミソリビューを含むものです。私はAJAXリンクを使用していることに注意してください。以下はコントローラーメソッドでもあります。

            <td class="questionText">@Ajax.ActionLink("some text", "PreviewQuestion", new { questionId = question.Id },
                new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = "target" })</td>

   public ActionResult PreviewQuestion(int questionId)
    {
        db = new ContosoDb();
        var question = db.Questions.Find(questionId);

        return PartialView("_MultipleChoiceQuestion", question);
    }

ご覧のとおり、Jqueryd ダイアログの現在のビューを更新しようとしています。それが私の目的です。次のプラグインを使用する予定です。

http://jqueryui.com/dialog/#default

今まではブレークポイントを設定すればreturn PartialView(...)OKでした。しかし、ポップアップに表示し、アクション コントローラーによってダイアログの内容を更新するコードをどこに書く必要があるのか​​ わかりません。

4

2 に答える 2

1

あなたの部分的なビューは、そのプラグインを使用してダイアログに変換する予定のある種の HTML スニペットを返していると思います。ajax 呼び出しにもう 1 つのパラメーターが必要です。

new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = "target",OnComplete = "your_js_function();" }

関数は次のようになります

function your_js_function()
 $( "#target" ).dialog();
}

この関数の目的は、ダイアログ ボックスの表示をトリガーすることです。

それが役立つことを願っています

于 2013-02-24T00:32:28.367 に答える
1

AjaxOptionsのOnSuccessイベントを使用して、JavaScript コードを接続します。OnSuccess は、呼び出しの結果 (この場合は部分ビューのコンテンツ) を渡します。これで、jqDialog を使用してコンテンツを表示できます。JavaScript 関数は、おおよそ次のようになります。

function processResults(results){
    $(results).dialog();
}
于 2013-02-24T00:35:43.030 に答える