提交表单但不重新加载页面。 Webmatrix剃刀

时间:2016-05-28 18:04:51

标签: forms razor webmatrix

我需要弄清楚提交表单的方法,但不要重新加载页面,以便我的页面不会再滚动到顶部。有办法吗?

<form method="post" id="myForm">
<button type="submit">Click</button>
</form>

if(Ispost){
Do something but do not reload the page. PS this is razor page.
}

1 个答案:

答案 0 :(得分:0)

是的,这是可能的,但它与客户端代码一样多,与服务器端部件一样多。

使用像jQuery这样的库可以简化操作,您可以$.serialize()https://api.jquery.com/serialize/)函数将表单中的数据转换为$.post()https://api.jquery.com/jquery.post/的格式然后,函数可以发送到您的WebMatrix端点。

在我的脑海中,像这样的一些JS / JQ代码可以解决这个问题:

var url = $('#myForm').attr('action');
var data = $('#myForm').serialize();
$.post(url, data, function () {
    // tell the user it succeeded
}).fail(function () {
    // tell the user it failed
});

以上假设您的表单具有使用您要将数据发布到的URL指定的操作,而serialize()将确保表单中的任何字段都传递到端点。

<form method="post" id="myForm" action="/my-end-point">
<input type="text" name="someval" id="someval" />
<button type="submit">Click</button>
</form>