Я ищу наиболее эффективный / стандартный способ передачи данных между клиентским кодом JavaScript и кодом C # в приложении ASP.NET. Я использовал следующие методы для достижения этой цели, но все они чувствуют себя немного выдумкой.
Чтобы передать данные из JavaScript в код C #, нужно установить скрытые переменные ASP и запустить обратную передачу:
<asp:HiddenField ID="RandomList" runat="server" />
function SetDataField(data) {
document.getElementById('<%=RandomList.ClientID%>').value = data;
}
Затем в коде C # я собираю список:
protected void GetData(object sender, EventArgs e)
{
var _list = RandomList.value;
}
Возвращаясь к другому пути, я часто использую ScriptManager для регистрации функции и передачи ей данных во время Page_Load:
ScriptManager.RegisterStartupScript(this.GetType(), "Set","get("Test();",true);
или я добавляю атрибуты к элементам управления перед публикацией или на этапах инициализации или предварительного рендеринга:
Btn.Attributes.Add("onclick", "DisplayMessage("Hello");");
Эти методы хорошо послужили мне и делают свою работу, но они просто не чувствуют себя законченными. Существует ли более стандартный способ передачи данных между клиентским JavaScript и внутренним кодом C #?
Я видел некоторые сообщения , как этот , которые описывают HTMLElement класса; это то, что я должен посмотреть?