Asp.net mvc 如何在不重新加载页面的情况下使用BeginForm发布到MVC表单
我有一个联系表格,提交后会发送电子邮件。我有一个操作方法Asp.net mvc 如何在不重新加载页面的情况下使用BeginForm发布到MVC表单,asp.net-mvc,Asp.net Mvc,我有一个联系表格,提交后会发送电子邮件。我有一个操作方法Send,可以处理电子邮件的发送。客户端希望在成功执行Send方法后出现一个模式,但不重新加载当前视图。无论我做了什么,我总是在执行Send后重新加载页面 我考虑过使用onClick事件,所以当表单提交时,我调用一个JS函数,然后告诉控件发送一封电子邮件,成功后显示模式。问题是我必须使用BeginForm,这样我就可以利用DataAnnotation来验证表单,但在这种情况下,每次提交时页面都会重新加载,我无法阻止这种情况。我也不知道如何将
Send
,可以处理电子邮件的发送。客户端希望在成功执行Send
方法后出现一个模式,但不重新加载当前视图。无论我做了什么,我总是在执行Send
后重新加载页面
我考虑过使用onClick事件,所以当表单提交时,我调用一个JS函数,然后告诉控件发送一封电子邮件,成功后显示模式。问题是我必须使用BeginForm,这样我就可以利用DataAnnotation来验证表单,但在这种情况下,每次提交时页面都会重新加载,我无法阻止这种情况。我也不知道如何将模型传递给JS函数。
如何在不重新加载视图的情况下发送电子邮件并将成功值传递回页面
@using (Html.BeginForm("Send", "Contact", FormMethod.Post))
<div class="form-inline">
<label for="first-name" class="form-label">*First Name</label>
@Html.TextBoxFor(m => m.FirstName})
@Html.ValidationMessageFor(model => model.FirstName)
</div>
<div class="form-inline">
<label for="last-name" class="form-label">*Last Name</label>
@Html.TextBoxFor(m => m.LastName })
@Html.ValidationMessageFor(model => model.LastName)
</div>
<div class="form-inline">
<label for="message" class="form-label">*Message</label>
@Html.TextAreaFor(m => m.Message })
@Html.ValidationMessageFor(model => model.Message)
</div>
<input id="btnbtn" type="submit" value="Submit" />
它刚刚从下拉列表中选择了值(联系原因):
{FirstName:null,LastName:null,EmailAddress:null,…}
联系原因:(8)[{…},{…},{…},{…},{…},{…}]
名字:空
姓氏:空
消息:空
如果不想重新加载/刷新页面,请使用Ajax调用。可能重复
var url = '/Home/Send';
$(function () {
$("#btnbtn").click(function () {
var myModel = @Html.Raw(Json.Encode(Model));
console.log(myModel);
});
});