Nano Hash - криптовалюты, майнинг, программирование

Обработка текстовых вводов на стороне клиента

Используя ASP.NET MVC 5 и механизм просмотра Razor, есть ли способ получить значения полей ввода перед отправкой данных на сервер, обработать их и затем вместо этого отправить обработанные данные?

Например:

@using (@Html.BeginForm("ViewPage", "Home", FormMethod.Post)) {
     @Html.TextBox("Field1")
     @Html.Hidden("Field2");
     <input type="submit" id="HiddenButton" value="Submit" style="display:none" />
     <input type="button" id="VisibleButton" value="Submit" />    
}

и сейчас :

<script type="text/javascript">
     document.ready(function() {
        $("#VisibleButton").click(function() {
             var Temp = $("#Field1").val()
             @{
                 // C# Area
                 Processing the Temp, by for example calling an extension method and
                 assigning the new value to the Hidden Field
              }
              $("#HiddenButton").trigger("click")
        })
     })
</script>

Я хотел бы сделать это, потому что я хочу зашифровать текст перед его отправкой на сервер, и я уже сделал свой метод шифрования на С#.


Ответы:


1

Это возможно, но обработка должна происходить на клиенте с помощью javascript:

$("#VisibleButton").click(function() {
    var Temp = $("#Field1").val();

    // process Temp here using javascript
    Temp = 'some new value';

    // set the processed value back to the input field
    $("#Field1").val(Temp);

    $("form").submit();
});

Если вы хотите, чтобы обработка происходила на сервере по каким-либо причинам, вы можете отправить ее как запрос AJAX к действию контроллера:

$("#VisibleButton").click(function() {
    var temp = $("#Field1").val();

    $.ajax({
        url: '@Url.Action("SomeAction")',
        data: { value: temp },
        success: function(result) {
            $("#Field1").val(result);
            $("form").submit();
        }
    });
});

И ваше действие контроллера:

public ActionResult SomeAction(string value)
{
    // do your processing here 
    value = "some new value";

    return Json(value);
}
26.07.2014
  • Нет, я не это имел в виду, я хочу использовать C# для обработки значения, которое я получаю с помощью JS. 26.07.2014
  • C# работает на сервере, javascript на клиенте. Как только вы осознаете эту фундаментальную концепцию, вы поймете, что то, чего вы пытаетесь достичь, не имеет особого смысла. Я обновил свой ответ примером использования AJAX для отправки значения на сервер для обработки и возврата измененного значения обратно клиенту. 26.07.2014
  • Проблема заключается в том, чтобы обойти фильтрацию контента для некоторых текстов (политических материалов) в каком-либо интернет-соединении, если данные отправляются таким образом, они просто блокируются. Поэтому он должен быть зашифрован на стороне клиента. 26.07.2014
  • Тогда единственный способ добиться этого - сделать это исключительно на клиенте с использованием javascript. 26.07.2014
  • Это кажется сложным, но когда 530K так говорит, это действительно единственный способ :D 26.07.2014

  • 2

    На самом деле вы не можете этого сделать..
    Здесь нет никакой магии, поскольку код JS выполняется на стороне клиента, а код C# находится на сервере.

    Вы всегда можете использовать https для зашифрованного сеанса.

    26.07.2014

    3

    Вы не можете использовать C# для выполнения проверки на стороне клиента. Это связано с тем, что проверка на стороне клиента выполняется в браузере пользователя, который понимает только JavaScript и HTML, сгенерированные ранее вашим кодом C# на сервере.

    Как сказал Дарин, если вы хотите выполнить проверку на С#, вы должны сделать это на стороне сервера. Для этого вам нужно выполнить вызов ajax и интерпретировать результат в JavaScript.

    Один из способов — сделать это так, как показал Дарин. Другой — использовать встроенный механизм MVC, описанный здесь.

    26.07.2014
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..