我注意到,当页面上的链接具有 JS onclick 函数和 MVC 操作方法时,JS 函数会在操作之前触发。
想知道总是这样吗?
浏览器为什么/如何运行 JS 和后端方法?
我可以先运行后端方法,但仍想触发 JS 功能吗?
问候
我注意到,当页面上的链接具有 JS onclick 函数和 MVC 操作方法时,JS 函数会在操作之前触发。
想知道总是这样吗?
浏览器为什么/如何运行 JS 和后端方法?
我可以先运行后端方法,但仍想触发 JS 功能吗?
问候
想知道总是这样吗?
浏览器为什么/如何运行 JS 和后端方法?
客户端 JavaScript 在客户端的页面内运行。服务器端 .NET 代码在服务器上运行并生成 HTML 文档(或其他资源)。
要运行服务器端代码,浏览器必须发出 HTTP 请求。
发出 HTTP 请求的最简单方法是离开当前页面并从服务器加载新页面(通过链接或提交表单)。
由于客户端 JavaScript 在页面中运行,因此在浏览器离开它运行的页面后它就无法运行。
我可以先运行后端方法,但仍想触发 JS 功能吗?
您可以从 JavaScript 发出 HTTP 请求(在执行其他 JS 操作之前),而不是离开当前页面。这通常由XMLHttpRequest
对象完成,称为 Ajax。
Can I run backend method first, but still want to fire the JS function?
前两个答案已经很好回答了。对于第三个,您可以尝试 Jquery Ajax-
function SomeFunction(){
$.ajax({
type: 'POST',
url: "@Url.Content("Controller/ActionResult")",
data : {
*yourparameter:value* //data
},
dataType: 'json',
success:function(result)
{
//javascript stuff
}
});
}
<a href='#' onclick="return SomeFunction();">ClickHereToSee</a>
浏览器为什么/如何运行 JS 和后端方法?
request
来返回response
. HTTP 适用于Request
和Response
架构。基本上客户端发出请求以获得响应(即结果或所需数据)无论您postback or return true
对服务器做什么,它都会执行服务器端方法。
<a href='#' onclick="return SomeFunction();">ClickHereToSee</a>
这里的返回值是函数返回的值,如果你返回真值,它将转到服务器方法,如果你返回假,它将阻止默认操作。
我可以先运行后端方法,但仍想触发 JS 功能吗?
你可以。使用阿贾克斯。基本上 Ajax 请求是 XMLHTTPRequest。用于更新部分部分。