0

jquery ui ダイアログ ボックスを使用して検索を実行しようとしていますが、実際のページにリダイレクトせずに結果をダイアログ ボックスにも表示します。これを行う簡単な方法は、UI を作成し、コンテンツを < div id > で囲んでから、ajax 呼び出しを使用して div をビューに置き換えることだと考えています。

この作業の基本は理解しましたが...入力フィールドのパラメーターを受信ビュー/コントローラーに渡す方法がわかりません! これにより避けられないページリダイレクトが発生するため、現在、submit() をどのような形状またはフォームでも使用していません。

私のダイアログには、次のような標準のテキスト フィールドが含まれています。

@Html.HiddenFor(model => model.Id)
<label>Customer Name</label>
@Html.TextBoxFor(m => m.Name, new { @class = "text ui-widget-content ui-corner-all" })
<label>EIN</label>
@Html.TextBoxFor(m => m.Ein, new { @class = "text ui-widget-content ui-corner-all" })
<label>State Tax ID Number</label>
@Html.TextBoxFor(m => m.StateTaxId, new { @class = "text ui-widget-content ui-corner-all" })

ダイアログ div のプレースホルダーがあります

<div id="dialog-searchResults" title="Search Results" class="hide">
@using (Html.BeginForm("searchResults", "Customers", FormMethod.Post, new { @id = "searchResultForm" }))
{
<div id="SearchContents">a</div>
}
</div>

ajax 呼び出し

function InsertDialogDiv(ajaxUrl, divTable) {
var jsonData = {
        "id": 0
    };
    $.ajax({
        type: 'POST',
        url: BASE_URL + ajaxUrl,
        data: JSON.stringify(jsonData),
        success: function (data) {
            $(divTable).replaceWith(data);
        },
        error: function (xhr, ajaxOptions, thrownError) {
            $(divTable).replaceWith(xhr.responseText);
        }
    });
}

ここで、ビューのパスとして ajaxUrl='Customer/SearchResults' を指定します。

この方法で div を置き換えると、Customer のコントローラーが SearchResults 関数をヒットするようにトリガーされますが、送信していないため、モデルにはすべて null 値があります。貴重な情報を入手するにはどうすればよいですか?

TY & Rat の出発です!

PS: ASP.NET C# MVC4 Razor

4

0 に答える 0