-1
我的视图形式替换JSON结果是相同的,因为这在AJAX MVC
<div class="col-sm-3 ">
@{Html.RenderAction("Subscribe", "Home");}
</div>
上另一方面我的动作是
public ActionResult Subscribe()
{
return PartialView("_Subscribe");
}
[HttpPost]
public ActionResult Subscribe(Subscribe subscribe)
{
if (ModelState.IsValid)
{
subscribe.Active = false;
subscribe.IpAddress = Request.UserHostName;
Guid gui = Guid.NewGuid();
subscribe.ActiveCode = gui;
subscribe.SubmitDate = DateTime.Now;
//_db.SaveChanges();
return Json("subscribe is complate, please check your email", JsonRequestBehavior.AllowGet);
}
return Json("error", JsonRequestBehavior.AllowGet);
}
在partialview
是
@model Jar.Models.Subscribe
<div Id="subForm" class="single-widget">
@using (Html.BeginForm()) {
@Html.TextBoxFor(x => x.Email, new { htmlAttributes = new {
@class = "form-control", @placeholder = "email" } })
<button type = "submit" id = "btn_Subscribe" class="btn btn-default"><i class="fa fa-arrow-circle-o-left"></i></button>
}
和in ajax
$(document).ready(function() {
$("#btn_Subscribe").click(function() {
$.ajax({
type: 'POST',
url: '@Url.Action("Subscribe")',
dataType: 'json',
data: { Email: $("#Email").val() },
success: function(data) {
alert(data);
}
});
});
});
好的,我想单击订阅按钮时,电子邮件发送到数据库并返回json,并用所有订阅表单(文本框和按钮)替换json, 现在当我点击订阅,电子邮件注册,但返回到新页面文本“订阅是complate,请检查您的电子邮件” 我如何更改此代码以用json文本替换订阅表单?
我使用它,但当我点击按钮页面刷新并显示源页面代码 – sunny
对不起!我的错误 - 我忘了将'preventDefault()'调用添加到事件中 –