【发布时间】:2015-02-07 13:37:04
【问题描述】:
我有以下 HTML 来显示一些消息
...
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<span id="fail_message" class="label label-danger"></span>
<span id="success_message" class="label label-success"></span>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="button" value="Invite User" class="btn btn-primary"/>
</div>
</div>
...
按下按钮时触发的脚本是
<script>
$(function () {
$("input[type=button]").click(function () {
var data_email = $('#email').val();
var data_product = $('#product option:selected').text();
$.ajax({
url: 'Tools/SendInvite',
type: 'POST',
data: { email: data_email, product: data_product },
success: function (result_success, result_failure) {
$('#fail_message').val(result_failure);
$('#success_message').val(result_success);
}
});
});
});
</script>
然后在我的控制器中我有
[AllowAnonymous]
public async Task<ActionResult> SendInvite(
string email, string product)
{
// Check if admin.
ApplicationUser user = null;
if (ModelState.IsValid)
{
user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
if (user.IsAdmin != null && (bool)user.IsAdmin)
{
string key = String.Empty;
string subMsg = String.Empty;
var accessDB = new AccessHashesDbContext();
switch (product) { /* do stuff */ }
// Send email.
try
{
await Helpers.SendEmailAsync(new List<string>() { email }, null, "my msg string" );
result = String.Format("Invitation successfully sent to \"{0}\"", email);
return Json(new {
result_success = result,
result_failure = String.Empty
},
JsonRequestBehavior.AllowGet);
}
catch (Exception)
{
result = String.Format("Invitation to \"{0}\" failed", email);
return Json(new {
result_success = String.Empty,
result_failure = result
},
JsonRequestBehavior.AllowGet);
}
}
}
return Json(new {
result_success = String.Empty,
result_failure ="Invite Failure"
},
JsonRequestBehavior.AllowGet);
}
控制器方法触发,发送电子邮件并返回视图,但未显示我的消息。 如何让标签显示正确的文本?
感谢您的宝贵时间。
注意。我见过
但这些对我没有帮助。
【问题讨论】:
-
我相信当你做
Json(new { a = 1, b = 1})时,javascript函数处理程序应该是function(data) { var a = data.a; var b = data.b}。即,js 处理程序应该只有一个参数。尝试在你的处理程序中做一个console.log(result_success);,看看你真正得到了什么 -
感谢大家的回答。非常感谢您的所有时间...
标签: javascript asp.net-mvc json asp.net-mvc-5