2

私のレイアウトビューでは

@Html.MakePopup(new MakePopupParams
    {
        Action = "Create",
        Title = "New Job Offer",
        Modal = true,
        Resizable = false,
        Height = 450,
        Width = 750,
        Position = "center"
    })

    <div style="padding-left: 10px">
        @Html.PopupActionLink(new PopupActionLinkParams
        {
            Action = "Create",
            Text = "Add new Job Offer",
            HtmlAttributes = new { @class = "btn btn-success btn-small" }
        })
    </div>

これにより、ビュー (作成) がレンダリングされるダイアログを作成するボタンがレンダリングされます。すべて正常に動作します。

問題は、フォームを送信するときです。ModelState が有効でない場合は、ビュー、モデル、および検証メッセージを返したいと思います。しかし、このようにビューを返すと

// there is something wrong with the data values
            return View(newOffer);

ブラウザーはビュー全体を表示します。

ビューを開いているダイアログに戻すにはどうすればよいですか?

4

2 に答える 2

0

ビューがそれを囲むサイトのレイアウトを取得していることが問題である場合は、部分ビューであることを指定することでそれを回避できるはずです。

return PartialView(newOffer);

アップデート

ダイアログのボタンまたはフォームを、AJAX を介してフォームの送信を行い、ダイアログの内容をサーバーから返された内容に置き換える JavaScript ハンドラーによって取得されるようにする必要があります。これを行う方法の一例を次に示します。

于 2014-11-21T16:15:25.930 に答える
0

ポップアップのみを作成するポップアップ ヘルパーを使用しています。PopupForm は、フォームの送信を処理するポップアップを作成し、[OK] ボタンと [キャンセル] ボタンも追加します。

http://awesome.codeplex.com/wikipage?title=PopupForm


あなたの場合、送信が処理されなかったため、ブラウザーはビュー全体を表示していました。代わりに PopupForm を使用する必要があります

于 2014-12-07T17:08:38.413 に答える