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