我创建了一个局部视图,它在表单"电子邮件地址"上采用了一个参数,我希望该字符串传递给我的控制器,名为" InviteTeam"它被装饰成" HttpPost"。
所以这里是局部视图和ajax命令
<form id="inviteTeam">
<label class="sr-only" for="communityCity">Team Email Address</label>
<input class="form-control" type="text" name="teamEmailAddress" id="teamEmailAddress" placeholder="Team Email">
<a href="#" id="btnSubmit" class="btn btn-sucess">Invite</a>
</form>
<script>
$(document).ready(function () {
$("#btnSubmit").click(function () {
var formdata = $("#inviteTeam").serialize();
alert(formdata);
$.ajax({
type: "POST",
url: "/habitats/InviteTeam",
data: formdata,
success: function () {
$("#inviteModal").modal("hide");
window.location.href = "/Habitats/EditCommunity/"
},
error: function (errorData) { alert(errorData); }
})
});
});
</script>
这是我的控制器代码:我的输入字符串是&#34;电子邮件&#34;为空
public ActionResult InviteTeam()
{
return PartialView();
}
[HttpPost]
public ActionResult InviteTeam(string email)
{
return RedirectToAction("EditCommunity", "Habitats");
}
答案 0 :(得分:1)
更改名称=&#34; teamEmailAddress&#34; to name =&#34; email&#34;请尝试以下方法:
<form id="inviteTeam">
<label class="sr-only" for="communityCity">Team Email Address</label>
<input class="form-control" type="text" name="email" id="teamEmailAddress" placeholder="Team Email">
<a href="#" id="btnSubmit" class="btn btn-sucess">Invite</a>
</form>
<script>
$(document).ready(function () {
$("#btnSubmit").click(function () {
var formdata = $("#inviteTeam").serialize();
alert(formdata);
$.ajax({
type: "POST",
url: "/habitats/InviteTeam",
data: formdata,
success: function () {
$("#inviteModal").modal("hide");
window.location.href = "/Habitats/EditCommunity/"
},
error: function (errorData) { alert(errorData); }
})
});
});
</script>
另一个解决方案是更改操作方法中参数的名称,如:
[HttpPost]
public ActionResult InviteTeam(string teamEmailAddress)
{
return RedirectToAction("EditCommunity", "Habitats");
}
此外,如果您只想重定向,那么您不需要任何ajax调用。您只需在javascript中重定向:
window.location.href = "/Habitats/EditCommunity/"
但是如果你必须对你的电子邮件地址做一些逻辑,那么点击那个控制器动作并返回JSON,因为RedirectToAction在AjaxCall中不起作用,如:
return Json("true");
在Ajax的成功方法中,您可以检查:
success: function (data) {
if (data == true){
$("#inviteModal").modal("hide");
window.location.href = "/Habitats/EditCommunity/";
}
}