我想从我的MVC 操作代码中触发一个Jquery 函数。知道通过直接代码是不可能的,如果有人知道如何通过任何可能的形式(例如发布事件或使用 ajax 调用或其他方式)来完成此任务。
在这里,我有一个可以使用以下代码运行的JQuery 插件。
$('#myModal').Show();
他们原来的调用机制是:
<script type="text/javascript">
$(document).ready(function() {
$('#myButton').click(function(e) {
e.preventDefault();
$('#myModal').Show();
});
});
</script>
多一点解释:
除了我提到的那一行之外,我不想要大部分代码。也许在这里我们应该在运行提供的 hack 之前让它成为一个更简单的函数。我们想要的不是按钮事件处理程序:在 Controller 中的 Action发送电子邮件后调用此函数$('#myModal').Show();
那个行动 :
[HttpPost]
public ActionResult Contact(Contact message)
{
if (ModelState.IsValid)
{
string stResult ;
Emailing.SendEmail(message, out stResult);
ViewBag.SaveResultMessage = stResult;
}
return View(message);
}
从联系人视图调用操作:
@Html.ValidationSummary(true)
@using (Html.BeginForm("Contact", "Home", FormMethod.Post, new { name = "send-contact",
id = "contactform1"}))
{
if (!String.IsNullOrEmpty(stResult))
{
// $('#myModal').Show(); I hoped we could do this way.
}
...
}
非常感谢您提供的解决方案的任何示例代码和演示。
编辑(基于 bAlexandre 答案):
您的代码: $("#btnSubmit").click(function () { // 让我们显示加载图像 //$(".myModal").Loading(); // 我们不希望加载或等待操作, // 只想向用户显示最终消息,例如“成功!”。 // 我认为这还不正确,但在确定返回 Json 后想向用户显示消息。
var frm = $("#send-contact"), // our form
url = frm.attr("action"), // our post action
dta = frm.serialize(); // our data to be posted
$.post(url, data, function(data) {
// data has our returned Json from our view
//$(".myModal").Show(stResult); Instead I want a place like here to just show the result
$(".error-message").text(data.message); // just to see it, do what you want
//$(".loading").hide(); // no more loading as we have what we need
});
- 我也很想知道当json返回时如何返回和显示stResult。感谢您进一步完成您的回答和您的帮助。