簡體   English   中英

將鍵/值對從 javascript 傳遞到 C# 代碼后面

[英]passing key/value pairs from javascript to C# code behind

如果我想將鍵/值對從 javascript 傳遞到 C# ASP.NET 代碼后面,我應該使用查詢字符串參數、隱藏值還是其他方法? 值不是來自表單,所以 jquery 序列化或 params() 不起作用..我想我必須手動序列化它?? 值來自下拉列表(名稱/選定的選項文本)對

這就是 JSON 的用途。 大多數 Javascript 框架都內置了 JSON 串行器。 可能 C# 也有一個 JSON 模塊(但我不知道)。 您也可以使用 XHR 發送它。

最簡單、最普遍兼容的方法是將鍵值集合附加到查詢字符串。 它將在HttpContext.Request.QueryString的 ASP.NET 中可用。

話雖如此,有多種方法可以實現您的目標。 您可以使用序列化值發送$.ajax請求。 如果想通過對表單進行序列化獲取jQuery中的序列化值,可以在序列化之前在表單中添加元素。

我遇到過同樣的問題。 我通過以下方式解決它:

我在JavaScriptforeach循環中准備了我的數組

var itemIdVersionCollection = [];
var itemName = row[1];
var version  = row[2];
var key = { Key: itemId , Value: version };
itemIdVersionCollection.push(key);

我的Model是這樣的:

public class IdVersion
{
    public int? Key { get; set; }
    public string Value { get; set; }
}

public class SomeModel 
{
   public List<IdVersion> ItemIdVersion { get; set; } 
}

行動

Public ActionResult MethodName(SomeModel model)

可能最好將其作為 JSON 傳遞,然后使用 JSON 庫(或 WCF)進行轉換

您可以通過隱藏服務器標簽並在回發按鈕上包含 onclientclick 屬性來實現此目的。

<input id="hdnKV" runat="server" />
<asp:Button id="btnSubmit" runat="server" onclientclick="selectKeyValues();" onclick="btnSubmit_OnClick">Submit</asp:Button> 

此 onclientclick javascript function 將從您的鍵值對中填充此隱藏值。

function selectKeyValues() {

    var kv= getKeyValues(),
        hiddenValue = document.getElementById('<%= hdnKV.ClientID =>');

    hiddenValue.Value = kv;

}

沒有說明您擁有什么數據,但您可能可以將以下格式用於鍵值對。

key1=value1,key2=value2,key3=value3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM