[英]C#: How to using global variable with Javascript
大家! 我正在學習ASP.NET MVC,並且有一些問題。 我的問題是將數據從視圖傳遞到控制器。
這是我的代碼:
@{
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;
}
完成后,我想將@listID傳遞給Controller:
@using (Html.BeginForm("DeleteChecked", "Category", new { listID }, FormMethod.Post)){ }
這是關於帶有復選框的多刪除的簡單問題。 請幫幫我。
您無法將javascript變量傳遞給控制器。
但是您可以在隱藏字段的幫助下將其作為表單數據發布。
最好添加一個隱藏字段並將其設置為Javascript並發布
@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%>';
}
這是客戶得到的:
function jsFunc(){
var myVar = 'test';
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.