作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试执行 AJax 表单发布,成功后会用结果更新表格。
这是我的代码:
@using (Ajax.BeginForm("AddTagToSubject", "Subjects", null, new AjaxOptions() { OnSuccess = "UpdateTableData();" }, null))
{
@Html.AntiForgeryToken()
<div class="form-">
<div class="form-horizontal">
@Html.Hidden("SubjectId", Model.Id)
<div class="form-group">
@Html.Label("Add Tag", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-4">
@Html.TextBox("Tag", "", new { @class = "form-control" })
</div>
<div class="col-md-2">
<input type="submit" value="Add" class="btn btn-default" />
</div>
</div>
</div>
</div>
}
这是页面底部的我的脚本:
<script type="text/javascript">
//Get the latest tags
function UpdateTableData() {
console.log("Called fucntion");
}
</script>
这是我的操作方法:
[HttpPost]
public async Task<JsonResult> AddTagToSubject(AddTagToSubjectViewModel model)
{
model.Tag = model.Tag.ToLowerInvariant();
var tags = await db.Tags.FirstOrDefaultAsync(x => x.Name == model.Tag);
if (tags == null)
{
tags = new Tag { CreatedBy = User.Identity.GetUserId(), DateCreated = DateTime.UtcNow, Name = model.Tag };
db.Tags.Add(tags);
await db.SaveChangesAsync();
}
var subject = await db.Subjects.FirstOrDefaultAsync(x => x.Id == model.SubjectId);
subject.Tags.Add(tags);
await db.SaveChangesAsync();
return Json(subject.Tags.Select(x => new { Id = x.Id, Name = x.Name }).ToList(), JsonRequestBehavior.AllowGet);
}
现在,当我添加标签时,它会调用操作方法,一切正常。它将标签添加到数据库中。但在我的前端,而不是调用我的 OnSuccess' function. It just reloads the whole webpage and displays my
JSON`结果。
[{"Id":3,"Name":"Zulu"},{"Id":7,"Name":"accounting"},{"Id":6,"Name":"High School"}]
我的布局文件中包含以下内容:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery.unobtrusive-ajax.js"
));
我在这里缺少什么?
最佳答案
您必须包含 jquery.unobtrusive-ajax.js
并且也许您已经更改了 Ajax.BeginForm 的 OnSuccess 函数,如下所示:
@using (Ajax.BeginForm("AddTagToSubject", "Subjects", null,
new AjaxOptions() { OnSuccess = "UpdateTableData" }, null)){...}
关于javascript - Ajax.BeginForm 在页面中加载结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37742275/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!