-1

如何在不使用它作爲輸入字段的情況下使用Model中的變量?我在Model有1個未使用的變量,它是userId。根據點擊的行,我的JavaScript填充View中的字段。我正計劃填充userId,以便我可以在Update按鈕中使用它。如何使用m => m.userId作爲變量?使用模型變量作爲將使用JavaScript填充的視圖中的變量

查看

@Html.LabelFor(m => m.userDesc) 
@Html.TextBoxFor(m => m.userDesc) 

@Html.LabelFor(m => m.userStatus) 
Active @Html.RadioButtonFor(m => m.userStatus, true) 
Inactive @Html.RadioButtonFor(m => m.userStatus, false) 

型號的JavaScript

//columnData - represents the column index in my table 
//fieldId - id of the fields (e.g. text = userDesc, radio = userStatus) 

for (i = 0; i < columnData.length; i++) { 

    var elmntType = document.getElementById(fieldId[i]).getAttribute("type"); 

    if (elmntType == "text") { 

     document.getElementById(fieldId[i]).value = rowSelected.cells[i].innerHTML.trim(); 

    } else if (elmntType == "radio") { 

     var status = rowSelected.cells[i].innerHTML.trim(); 

     if(status == "Active") { 
      $('input[name="' + fieldId[i] + '"][value="True"]').prop('checked', true); 
     } else { 
      $('input[name="' + fieldId[i] + '"][value="False"]').prop('checked', true); 
     } 
    }    
} 
+0

只是有人對我的問題投下了一票!我認爲這是一個有效的。這不是一個重複的問題,我發佈了我的代碼。天啊。 –

+0

您是否想將'userId'的值賦給javascript可變參數? - 你可以使用'var id = @ Html.Raw(Json.Encode(Model.userId));'。或者你可以將該值添加爲html元素的data-*屬性(並使用'var id = $(element).data('....')來獲取它的值;' –

+0

@PhilipSy:如果你懸停在downvote按鈕上,你會看到下面的描述:「這個問題沒有顯示任何研究工作;它不清楚或沒用。」事實上,這個問題與SO上的約一百個其他人相同,只是有如此多的變化,他們往往不是這樣封閉的,儘管如此,他們都圍繞着提問者不瞭解客戶端服務器的基本概念,換句話說,沒有研究工作,我並沒有讓你失望,但這對我來說似乎是完全有效的。 –

回答

0

首先,你可以使用包含在Model變量,而無需使用m => m.A符號的

public string userId { get; set; } 
[Required(ErrorMessage = "*")] 

[Display(Name = "User")] 
public string userDesc { get; set; } 

[Display(Name = "Status")] 
public string userStatus { get; set; } 

一部分。 任何地方在你看來,你可以做這樣的事情:<h1>Hi @Model.userDesc</h1>

現在,如果你想用你的Model的變量在JS代碼,你可以用3種方式實現:

  1. 嵌入您的JS代碼在您的視圖中,以便您可以在任何地方使用@Model.userId
  2. 外部化的.js文件,並從您通過@Model.userId

另外,如果你想更新從JS代碼userId變量視圖初始化JS代碼,你必須將它保存在一個隱藏字段,以便操縱它。