C# C:如何在Javascript中使用全局变量
各位!! 我正在学习ASP.NETMVC,有一些问题。 我的问题是将数据从视图传递到控制器 这是我的代码:C# C:如何在Javascript中使用全局变量,c#,javascript,asp.net,asp.net-mvc,C#,Javascript,Asp.net,Asp.net Mvc,各位!! 我正在学习ASP.NETMVC,有一些问题。 我的问题是将数据从视图传递到控制器 这是我的代码: @{ string listID = ""; } 我尝试使用这个变量: function SubmitDelete() { var listId = ""; var x = document.getElementsByName("IsCheck"); for (var i = 0; i < x.length; i++) { if
@{
string listID = "";
}
我尝试使用这个变量:
function SubmitDelete() {
var listId = "";
var x = document.getElementsByName("IsCheck");
for (var i = 0; i < x.length; i++) {
if (x[i].checked == true) {
listId += x[i].value + ", ";
};
}
@listID = listId;
return listId;
}
这是一个关于复选框多次删除的简单问题。
请帮帮我。您不能将javascript变量传递给控制器 但您可以在隐藏字段的帮助下将其作为部分表单数据发布 最好添加一个隐藏字段,并在Javascript和post中设置它
@using (Html.BeginForm("DeleteChecked", "Category", FormMethod.Post)){
Html.HiddenFieldFor(m=>m.MyList, new {@id="my-list-data"})
..other controls and your submit button
}
在Javascript中
function SubmitDelete() {
var listId = "";
var x = document.getElementsByName("IsCheck");
for (var i = 0; i < x.length; i++) {
if (x[i].checked == true) {
listId += x[i].value + ", ";
};
}
$('#my-list-data').val(listId);
}
你不能那样做。
aspx\ascx\cshtml等页面是在服务器端构建的,而js是在客户端计算的。
您可以将C字符串添加到js函数中,但当它们到达客户端时,它们将被硬编码。
所有的C表达式在到达客户端和计算js之前都会被计算
下面是一个例子:
这是您在aspx\ascx\cshtml文件中看到的内容
<%
string str = 'test';
%>
function jsFunc(){
var myVar = '<%=str%>';
}
我认为您需要了解客户端代码和服务器端代码之间的区别,以及每种代码在什么时候运行。您的问题没有什么意义。您可以使用隐藏字段,然后使用document.getElementByIdHiddenFieldId在SubmitDelete中选择,并将其值设置为listId。然后你可以在你的控制器中传递隐藏字段的值。你为什么还要传递空的listID字符串作为路由参数?@AntP,我没有注意到。现在更新。谢谢你的回答。但是m=>m.MyList中的MyList是什么呢。我使用IList进行Model@BaTrinh,请使用模型详细信息添加控制器操作方法。在回答中:Html.HiddenFieldForm=>m.MyList,new{@id=my list data}。第2个参数是htmlatitbutes。确切地说,我在这个位置上增加了价值:easest是。然后,这个HiddenField将从JS选项卡获取值。我的问题解决了。非常感谢你
<%
string str = 'test';
%>
function jsFunc(){
var myVar = '<%=str%>';
}
function jsFunc(){
var myVar = 'test';
}