我正在尝试使用 jquery ui 对话框进行搜索,并且结果也出现在对话框中,而实际页面上没有任何重定向。我在想一个简单的方法就是创建我的 ui 并在内容周围放置一个 < div id >,然后使用 ajax 调用将 div 替换为视图。
我已经掌握了这项工作的基础知识,但是......我不知道如何将输入字段参数传递给传入的视图/控制器!它目前没有以任何形状或形式使用 submit(),因为这会导致不可避免的页面重定向 afaik。
我的对话框包含标准文本字段,例如:
@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 确实会触发客户的控制器点击 SearchResults 函数,但由于我没有提交,因此模型具有所有空值。我如何获得我宝贵的信息块?
TY & Rat 出发啦!
PS:ASP.NET C# MVC4 Razor