MVC3 Razor> Поле ввода - PullRequest
       6

MVC3 Razor> Поле ввода

0 голосов
/ 10 февраля 2011

В одном из моих просмотров у меня появилось поле INPUT, где я помещаю курсор и сканирую MagCard через считыватель.Это приводит к ряду символов в этом поле, заканчивающихся ENTER (char 13), которые я перехватываю через jQuery и отправляю свою форму на другую страницу для обработки.

В основном я хочу, чтобы строка из поля вводабыть доступным в контроллере, так что я могу справиться с ним, используя функции c # вместо того, чтобы делать все это на стороне клиента с помощью javascript.

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

Любая помощь приветствуется, и причина для меня POST, а не GET, состоит в том, что она заполнена специальными символами,? И пробелами, которые необходимо сохранить.

Любой метод будетценится.

@ Дарин Димитров Извините за то, что мне неясно.

Пока ваше предложение работает, и направило меня немного к тому, что мне нужно.(Это будет полезно знать, несмотря ни на что.)

Поскольку я действительно не хочу возвращаемого значения, я пытался отправить в Home / ProcessScan как действие для моей формы.Затем в моем контроллере сделайте следующее:

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult ProcessScan(string scanSeek)
    {
        string myScan = scanSeek;
        string name = myScan.Substring(1, 13);
        return Redirect("../reservation?name=" + name);
    }

И теперь это работает для меня.Пришлось:
* Использовать объявление [AcceptVerbs (HttpVerbs.Post)]
* Измените мой тип на ActionResult вместо void, так как перенаправление необходимо вернуть перед ним

Примечание: для моегоредирект Я использую "../", потому что это представление не находится под Home.

Ответы [ 2 ]

1 голос
/ 10 февраля 2011

Предположим, что входной идентификатор равен magCardCode, поэтому у вас может быть Action, который принимает аргумент: string magCardCode.

В этом сценарии вы можете просто опубликовать форму, используя jquery ajax, напримерthis:

<script>
    $(document).ready(function () {
        $("#submitForm").click(function () {
            $.ajax({
                url: '/MagCard/SubmitCode/,
                dataType: 'html',
                type: 'POST',
                success: function (data) {
                    // Use data
            });
        });

    });
</script>

И теперь значение доступно в вашем действии!

1 голос
/ 10 февраля 2011

Ваш вопрос сбивает с толку, поскольку вы не предоставляете много подробностей.Очевидно, что такие события, как onfocus и onclick, могут обрабатываться только через клиентский JavaScript.Вы упоминаете JQuery и POST, поэтому я предполагаю, что вы говорите об AJAX.Таким образом, вы можете отправить значение как это:

$.post('@Url.Action("Foo")', { value: $('#mytextboxid').val() }, function(result) {
    // the value was successfully posted to the server
});

и на сервере вы будете иметь следующее действие контроллера:

public ActionResult Foo(string value)
{
    // TODO: do something with the value and return a corresponding result
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...