MVC3 Jquery Ajax

夜色镇歌 2012-06-03 08:51:00

@model MvcWithAjax.Models.SoSoKe_Ad
@{
ViewBag.Title = "Index";
}
<script type="text/javascript" src="../../Scripts/jquery-1.6.2.js"></script>
<h2>Index</h2>
<script type="text/javascript">
$(function () {
$("form").submit(function () {
$.ajax({
url: $(this).attr("action"),
type: "post",
data: $(this).serialize(),
success: function (data) {
alert(data.msg);
}
});
});
})
</script>
@using (Html.BeginForm()) {
<fieldset>
<legend>广告</legend>
<div>编号:@Html.TextBoxFor(model => model.Ad_ID)</div>
<div>信息:@Html.TextBoxFor(model => model.Ad_Info)</div>
<div>
<input type="submit" value="提交" />
</div>
</fieldset>
}





public class HomeController : Controller {
//
// GET: /Home/

public ActionResult Index() {
return View();
}

[HttpPost]
public ActionResult Index(SoSoKe_Ad ad) {
return Json(new { msg = "1" });
}
}


[HttpPost]
public ActionResult Index(SoSoKe_Ad ad) {
return Json(new { msg = "1" });
}

这个方法中实体类接收到的信息是正确的
可是返回的时候直接跳出个新的网页并没有alert 是什么情况?
求助啊~~~

...全文
521 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
GhostSin 2012-07-10
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]

是form所在的页面啊。 返回json的时候就跳到新页面了。
加上return false; 会alert()了。
为什么不加return false; 就会跳转到一个新页面呢

引用 16 楼 的回复:

看你form action是什么,就跳到那个页面了
[/Quote]

JS的return false 阻止默认行为。例如在超链接onclick里写return false就不会跳转页面。
夜色镇歌 2012-06-05
  • 打赏
  • 举报
回复
是form所在的页面啊。 返回json的时候就跳到新页面了。
加上return false; 会alert()了。
为什么不加return false; 就会跳转到一个新页面呢

[Quote=引用 16 楼 的回复:]

看你form action是什么,就跳到那个页面了
[/Quote]
夜色镇歌 2012-06-04
  • 打赏
  • 举报
回复
夜色镇歌 2012-06-04
  • 打赏
  • 举报
回复
那么执行后为什么会发返回一个新的窗口呢[Quote=引用 11 楼 的回复:]

不加执行完后会submit。多了解下基础
[/Quote]
骑猪看海 2012-06-04
  • 打赏
  • 举报
回复
不加执行完后会submit。多了解下基础
夜色镇歌 2012-06-04
  • 打赏
  • 举报
回复
为什么要加上return false啊 有什么说法吗[Quote=引用 9 楼 的回复:]

JScript code

$("form").submit(function () {
AJAX操作...
return false;
});
[/Quote]
骑猪看海 2012-06-04
  • 打赏
  • 举报
回复

$("form").submit(function () {
AJAX操作...
return false;
});

oioixiabings 2012-06-04
  • 打赏
  • 举报
回复
试一下这样
@using (Ajax.BeginForm()) {
<fieldset>
<legend>广告</legend>
<div>编号:@Html.TextBoxFor(model => model.Ad_ID)</div>
<div>信息:@Html.TextBoxFor(model => model.Ad_Info)</div>
<div>
<input type="submit" value="提交" />
</div>
</fieldset>
}
夜色镇歌 2012-06-04
  • 打赏
  • 举报
回复
有人吗
骑猪看海 2012-06-04
  • 打赏
  • 举报
回复
看你form action是什么,就跳到那个页面了
夜色镇歌 2012-06-04
  • 打赏
  • 举报
回复
到底是为什么啊 为什么返回的 json 在新窗口啊?[Quote=引用 14 楼 的回复:]

[/Quote]
骑猪看海 2012-06-04
  • 打赏
  • 举报
回复
夜色镇歌 2012-06-03
  • 打赏
  • 举报
回复
看下这个 我也刚接触~[Quote=引用 4 楼 的回复:]

你这样是直接post而不是触发的ajax事件,mvc3里ajax提交表单用Ajax.BeginForm().
[/Quote]
夜色镇歌 2012-06-03
  • 打赏
  • 举报
回复
不行啊[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:
那是重载啊亲

引用 1 楼 的回复:

public ActionResult Index(SoSoKe_Ad ad) 修改为 public ActionResult Index2(SoSoKe_Ad ad) 试试,方法名称不能相同

试了还是不行吗
[/Quote]
beyond_me21 2012-06-03
  • 打赏
  • 举报
回复
你这样是直接post而不是触发的ajax事件,mvc3里ajax提交表单用Ajax.BeginForm().
licai1210 2012-06-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
那是重载啊亲

引用 1 楼 的回复:

public ActionResult Index(SoSoKe_Ad ad) 修改为 public ActionResult Index2(SoSoKe_Ad ad) 试试,方法名称不能相同
[/Quote]
试了还是不行吗
夜色镇歌 2012-06-03
  • 打赏
  • 举报
回复
那是重载啊亲[Quote=引用 1 楼 的回复:]

public ActionResult Index(SoSoKe_Ad ad) 修改为 public ActionResult Index2(SoSoKe_Ad ad) 试试,方法名称不能相同
[/Quote]
licai1210 2012-06-03
  • 打赏
  • 举报
回复
public ActionResult Index(SoSoKe_Ad ad) 修改为 public ActionResult Index2(SoSoKe_Ad ad) 试试,方法名称不能相同

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧