读书人

MVC3 Jquery Ajax,该怎么解决

发布时间: 2012-06-07 15:05:14 作者: rapoo

MVC3 Jquery Ajax

HTML code
@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>}




C# code
    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 是什么情况?
求助啊~~~



[解决办法]
public ActionResult Index(SoSoKe_Ad ad) 修改为 public ActionResult Index2(SoSoKe_Ad ad) 试试,方法名称不能相同
[解决办法]
你这样是直接post而不是触发的ajax事件,mvc3里ajax提交表单用Ajax.BeginForm().

[解决办法]
试一下这样
C# code
@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>}
[解决办法]
JScript code
 $("form").submit(function () {      AJAX操作...      return false; }); 

读书人网 >asp.net

热点推荐