Захват URL перед публикацией формы - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь перехватить URL, указанный при загрузке страницы. Когда страница загружается, она добавляется с предоставленными параметрами, чтобы дать мне информацию, которую мне нужно сохранить. Проблема в том, что когда пользователь заполняет поля формы и отправляет, URL-адрес содержит метод-обработчик. То, что кажется очевидным, - это то, что мне нужно захватить URL перед отправкой формы. Я недостаточно знаком с Razor, чтобы понять, есть ли событие, которое срабатывает при нагрузке, или как это сделать. Есть ли что-то простое, как событие загрузки страницы? Спасибо!

1) Начинается как: https://localhost:44384/sign 2) При отправке принимает имя обработчика: https://localhost:44384/Sign?handler=SubmitAndRedirect

      <form method="post">
          First name:<br>
          <input type="text" name="firstname" autocomplete="on" maxlength="10" required><br>
          Last name:<br>
          <input type="text" name="lastname" autocomplete="on" maxlength="10" required><br>
          Employee number:<br>
          <input type="text" name="empnum" maxlength="10">
          <br>
          <br>I agree to the terms above:<br>
          <input type="checkbox" name="check" required>
          <button type="submit"  asp-page-handler="SubmitAndRedirect">Submit and Redirect</button>
      </form>
public ActionResult OnPostSubmitAndRedirect()
{

    //Capture Form Data and Push to SQL DB
    var firstname = Request.Form["firstname"];
    var lastname = Request.Form["lastname"];
    var empnum = Request.Form["empnum"];

    bool isValidUser = ValidateUser(empnum, lastname);

    if (isValidUser == true)
    {
        WriteToDB(firstname, lastname, empnum, url);
        return Redirect(hardcoded);
    }
    else
    {
        return Redirect("/sign");
    }

}

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Спасибо всем. Мне удалось разрешить добавление свойства на стороне C # и затем захватить запрос до отправки формы, установив свойство вне формы с помощью встроенного кода между тегами абзаца.

<p>
    @{
        var QS = Request.QueryString.Value;
        JT.query = QS;
     }
    @*<h1> @JT.query</h1>*@
</p>
0 голосов
/ 18 июня 2019

Функции привязки моделей MVC могут быть тем, что вы ищете. Взгляните на эту статью .

Посмотрите, как он использует класс EmployeeViewModel и как форма публикуется в действии.

В MVC, как и в веб-формах, нет protected void Page_Load(object sender, EventArgs e), о котором я знаю.

Также проверьте Обработчик отправки jQuery . Возможно, это позволит вам собирать некоторую информацию и обрабатывать ее перед отправкой.

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