我正在使用 MVC4。 在我的项目中启用并引用了无侵扰 JavaScript 。 Ajax 脚本正在装入我的共享主页。 FireBug 没有报告错误或404 s 。
我在我的页面中添加了一个 < code> Text 框, 更新了我 < code> Ajax 窗体内 < code > Ajax 字段的内容。 当用户按键和 < code> KeyUp 事件火灾时, 我用电话强制我的 < code> Ajax 表格提交 :
$("form#ajaxForm").trigger("submit");
ajaxForm 是 Ajax 表格的名称。 这很好。 表格在幕后提交, 我的控制器事件火灾。 根据用户输入的新数据更新模型 。
然而,奇怪的是,当结果返回到我的窗体时。我的窗体 < code> div 标记的全部内容被结果 -- -- 即整个页面 -- -- 所取代。
<div id="basic-modal-content"">
<input id="breed" type="text"/>
<div>
<form id="ajaxForm" method="post" data-ajax-update="#results" data-ajax-mode="replace" data-ajax="true" action="/Poultry/ListBreeds?Length=7">
<div id="results">
->THIS AREA IS GETTING REPLACED WITH THE ENTIRE FORM <-
<div id="basic-modal-content">
</div>
</div>
</form>
- Notice how basic-modal-content now contains itself, another basic-modal-content. The result div should only contain the updates results, not the entire view -- obviously.
我的代码如下:
<强度 > 查看 强度 > ( BreedSextorPartial.cshtml )
@model IQueryable<Inert.BreedViewModel>
<script type="text/javascript">
$(document).ready(function () {
$("#breed").keyup(function (e) {
$("input[name=breedSearch]").val($("#breed").val());
$("form#ajaxForm").trigger("submit");
});
});
</script>
<div id="basic-modal-content">
<input id="breed" type="text" style="width:100%; height:22px;" />
<div>
<div style="margin-top: 4px;">
<label for="breed">Begin by typing a breed, e.g. <span style="font-style: italic">Wyandotte</span></label>
</div>
</div>
@using (Ajax.BeginForm("ListBreeds", "Poultry", new AjaxOptions {UpdateTargetId = "results" }, new { id = "ajaxForm" }))
{
<input id="breedSearch" name="breedSearch" type="hidden" />
}
<div id="results" style="height: 320px; color: black; margin-top: 12px; font-size: 18px;">
@{
var grid = new WebGrid(Model, ajaxUpdateContainerId: "results");
int c = Model.Count();
}
@grid.GetHtml(tableStyle: "webgrid",
alternatingRowStyle: "webgrid-alternating-row",
rowStyle: "webgrid-row-style",
displayHeader: true)
</div>
</div>
<script type="text/javascript" src="/scripts/jquery.simplemodal.js"></script>
<script type="text/javascript" src="/scripts/basic.js"></script>
<强 > 主计长 强 > ( 禽类主计长.cs )
[HttpPost]
public ActionResult ListBreeds(string breedSearch)
{
InertDatabaseEntitiesConnection db = new InertDatabaseEntitiesConnection();
var breeds = db.Breeds.Where(q => q.Name.Contains(breedSearch));
var names = breeds.Select(q => new BreedViewModel { Name = q.Name });
return PartialView("BreedSelectorPartial", names);
}
我不知道我到底哪里搞错了 我花了好几个小时才弄清楚,有办法吗?