Javascript 如何将@model.ApplicationId从html表单传递到js
我正在尝试做一个自动保存功能,将保存表单数据。我无法将我的ApplicationId从表单传递到JS以自动保存。虽然使用固定id,但自动保存确实有效。我有以下代码: Js代码:Javascript 如何将@model.ApplicationId从html表单传递到js,javascript,c#,html,Javascript,C#,Html,我正在尝试做一个自动保存功能,将保存表单数据。我无法将我的ApplicationId从表单传递到JS以自动保存。虽然使用固定id,但自动保存确实有效。我有以下代码: Js代码: window.setInterval(AutoSaveDraft(id), 50000); function AutoSaveDraft(id) { $.post({ url: "/Application/Edit/"+id , data: $("#applicatio
window.setInterval(AutoSaveDraft(id), 50000);
function AutoSaveDraft(id) {
$.post({
url: "/Application/Edit/"+id ,
data: $("#application-form").serialize()
}).done(function(data, textStatus, jqXhr) {
if (jqXhr.status === 200) {
alert("Data Application has been saved");
return true;
}
});
}
Html代码:
<form asp-action="Edit" id="application-form" name="@Model.ApplicationId" >
...
</form>
...
基本上,我希望@Model.ApplicationId被传递给我的Js,这样我就可以在我的自动保存功能中使用它。首先,你的间隔是错误的。您所做的是调用一个函数并将结果传递给interval。您需要向它传递一个函数,它可以在需要时调用该函数。您正在立即调用您的函数 接下来,您需要做的就是使用jquerys
attr()
方法,如下所示:
let id='申请表'
window.setInterval(()=>AutoSaveDraft(id),5000);
函数自动保存草稿(id){
让name=$(`${id}`).attr('name'))
console.log(名称)
}
首先,你的时间间隔错了。您所做的是调用一个函数并将结果传递给interval。您需要向它传递一个函数,它可以在需要时调用该函数。您正在立即调用您的函数 接下来,您需要做的就是使用jquerys
attr()
方法,如下所示:
let id='申请表'
window.setInterval(()=>AutoSaveDraft(id),5000);
函数自动保存草稿(id){
让name=$(`${id}`).attr('name'))
console.log(名称)
}
假设您的JS与html位于同一页面上,您只需编写:
window.setInterval(function () {
var id = '@Model.ApplicationId'; // Turned C# to JS here
AutoSaveDraft(id);
}, 50000);
function AutoSaveDraft(id) {
$.post({
url: "/Application/Edit/"+id ,
data: $("#application-form").serialize()
}).done(function(data, textStatus, jqXhr) {
if (jqXhr.status === 200) {
alert("Data Application has been saved");
return true;
}
});
}
现在让我们假设您的JS在其他地方:
HTML:
也就是说,我建议您使用data-
属性来传递此类数据。让我们尝试使用数据应用程序id
<form asp-action="Edit" id="application-form" data-application-id="@Model.ApplicationId">
...
</form>
window.setInterval(function () {
var id = $("#application-form").data("application-id"); // Retrieve here
AutoSaveDraft(id);
}, 50000);
...
window.setInterval(函数(){
var id=$(“#应用程序表单”).data(“应用程序id”);//在此处检索
自动保存草稿(id);
}, 50000);
假设您的JS与html位于同一页面上,您只需编写:
window.setInterval(function () {
var id = '@Model.ApplicationId'; // Turned C# to JS here
AutoSaveDraft(id);
}, 50000);
function AutoSaveDraft(id) {
$.post({
url: "/Application/Edit/"+id ,
data: $("#application-form").serialize()
}).done(function(data, textStatus, jqXhr) {
if (jqXhr.status === 200) {
alert("Data Application has been saved");
return true;
}
});
}
现在让我们假设您的JS在其他地方:
HTML:
也就是说,我建议您使用data-
属性来传递此类数据。让我们尝试使用数据应用程序id
<form asp-action="Edit" id="application-form" data-application-id="@Model.ApplicationId">
...
</form>
window.setInterval(function () {
var id = $("#application-form").data("application-id"); // Retrieve here
AutoSaveDraft(id);
}, 50000);
...
window.setInterval(函数(){
var id=$(“#应用程序表单”).data(“应用程序id”);//在此处检索
自动保存草稿(id);
}, 50000);
是否希望通过ajax发送?你想怎么用?没关系。我基本上想在AutoSaveDraft()中使用它。所以我只需要id就可以了。window.setInterval(AutoSaveDraft('@Model.ApplicationId'),50000)
应该在这里工作dbraillon的可能副本-我有一个单独的Js文件,因此@Model.ApplicationId不工作。我试过使用它。你想通过ajax发送吗?你想怎么用?没关系。我基本上想在AutoSaveDraft()中使用它。所以我只需要id就可以了。window.setInterval(AutoSaveDraft('@Model.ApplicationId'),50000)
应该在这里工作dbraillon的可能副本-我有一个单独的Js文件,因此@Model.ApplicationId不工作。我试过使用它。OP没有像你那样使用id变量,他需要从它的模型中获取id,并使用它在ajax请求中构建url。我的问题是如何使用它,答案是他们只想访问它,这就是我的回答。GetOffMyLawn-这对我不起作用。我试过了。有没有其他方法可以在Js中使用@Model.ApplicationId?哪种方法不起作用?如果您运行代码,您将看到它正在获取值。更多信息可能会有所帮助。OP没有像您那样使用id变量,他需要从它的模型中获取id,并使用它在ajax请求中构建url。我的问题是如何使用它,答案是他们只想访问它,这就是我的回答。GetOffMyLawn-这对我不起作用。我试过了。有没有其他方法可以在Js中使用@Model.ApplicationId?哪种方法不起作用?如果您运行代码,您将看到它正在获取值。更多信息会有所帮助。