我有javascript函数,它使用noty javascript插件创建通知,
<script type="text/javascript">
function generateAnoty(message) {
var noty_id = noty({
layout: 'center',
text: message,
modal: true,
type: 'success',
});
}
</script>
我使用razor v2作为C#的视图引擎,而web表单框架工作不是mvc。 提交表单后,我想调用上面的javascript函数。 这是我正在尝试做的一个例子;
//place for c#
if (IsPost)
{
//after submitting the form
//I wanna somehow call the js to show noty message
generateAnoty("You have successfully submitted the form!")
}
P.S。如果我尝试通过使用任何html按钮onclick eventhandler调用generateAnoty(message)js方法,它可以很好地工作。
答案 0 :(得分:0)
根据您提交表单的方式,您可以这样做..
@using (Ajax.BeginForm("Results", new AjaxOptions { UpdateTargetId="Results", OnBegin="ShowLoading", OnComplete="generateAnoty", OnFailure="Error" }))
{
// Code here
}
注意:根据您在表单上的内容,您必须替换某些内容的名称。在这个例子中,我有一个函数,显示一个加载图像OnBegin和OnComplete你可以让它消失,或显示消息,无论你想要什么。只需更换你需要的东西就可以了。
答案 1 :(得分:0)
要添加将在您的框架中回发后运行的脚本,您可以使用ScriptManager.RegisterStartupScript或Page.ClientScriptManager.RegisterStartupScript方法。
如果您的网络表单在框架内使用UpdatePanel,则使用ScriptManager.RegisterStartupScript
,否则使用Page.ClientScriptManager.RegisterStartupScript
方法。
作为RegisterStartupScript的统一解决方案,您可以使用以下扩展方法:
public static void RegisterStartupScript(this Page page, string scriptText)
{
var scriptManager = ScriptManager.GetCurrent(page);
if (scriptManager != null && scriptManager.IsInAsyncPostBack)
ScriptManager.RegisterStartupScript(page, page.GetType(), Guid.NewGuid().ToString(), scriptText, true);
else
page.ClientScript.RegisterStartupScript(page.GetType(), Guid.NewGuid().ToString(), scriptText, true);
}