Добавление переменной бритвы в контроллере представления? - PullRequest
0 голосов
/ 18 декабря 2018

Мне было интересно, можно ли вызвать бритвенную переменную в контроллере вида?

В основном я пытаюсь повторить процесс из этого видео с парой различий: https://www.youtube.com/watch?v=P7i1G6CeOiI

Например, я создаю веб-сайт, который берет текстовый ввод из формы и отправляет его по электронной почте на центральный адрес электронной почты.После построения формы на html-странице, я затем использую бритву, чтобы создать переменную, равную каждому полю ввода

ex:

<input class="input" type="text" name="inputOne" />

@{
 var input1 = Request["inputOne"];
}

Оттуда я создал строку, которая поместит всепеременных вместе, чтобы создать тело сообщения электронной почты.

ex:

string messageBody = "input one: " + input1 + "input two: " + input2 + ect.ect.ect.;

Теперь вот где я немного растерялся.Как это сделано в видео выше, инструктор жестко кодирует сообщение, отправленное в электронном письме.Очевидно, что в моей ситуации это не сработает, поскольку тело сообщения зависит от ввода пользователя.Я думал, что будет достаточно просто вызвать строку «messageBody», и это будет, по-видимому, нет.Msgstr "имя messageBody не существует в текущем контексте".Мне интересно, как именно или я мог бы вызвать строку "messageBody" в контроллере?Или, может быть, совершенно другой метод подойдет мне лучше?

1 Ответ

0 голосов
/ 18 декабря 2018

Создайте два действия, которые возвращают виды внутри вашего контроллера.Один для GET и один для POST.

Плюс создайте свою модель, которую вы будете использовать, ваша модель должна иметь свойство InputOne, поэтому выглядит так:

public class RegisterViewModel
{
    public string InputOne { get; set; }
}

Действия:

[HttpGet]
public ActionResult Example()
    {
        var model = new ExampleViewModel();
        return View(model);
    }

[HttpPost]
public ActionResult Example(ExampleViewModel model)
    {
        if (!ModelState.IsValid)
        {
            return View(model);
        }

        // Process the model as you wish...

        return RedirectToAction(nameof(AnotherAction));
    }

Создайте соответствующее представление (папка Views / YourControllerName / Example.cshtml). В представление включите вашу модель представления и реализуйте форму:

@model YourProjectName.Project.Models.ExampleViewModel

<div>
    @using (Html.BeginForm("Example", "YourController", FormMethod.Post))
    {
        @Html.TextBoxFor(model => model.InputOne)

        <input type="submit" value="Submit">
    }
</div>

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...