Как заполнить текстовые поля с строкой (-ами) строки запроса из URL-адреса

У меня есть простое приложение Window Forms, которое открывает веб-страницу с заданными параметрами.

Ссылка отправит пользователя на страницу с двумя полями текстового поля и кнопкой отправки.

Я пытаюсь автоматизировать этот процесс, поэтому он захватывает значения параметров и помещает их в текстовое поле, после чего нажимает кнопку submit.

Это мой текущий код для моей формы окна:

using System;
using System.Windows.Forms;
using System.Diagnostics;

namespace WindowsFormsApplication1 {

public partial class Form1 : Form {

    public Form1() {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e) {
        libLink.Links.Remove(libLink.Links[0]);
        libLink.Links.Add(0, libLink.Text.Length,
            "http://www.example.com/?UserName=value1&FirstName=value2");
    }

    private void libLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
        ProcessStartInfo sInfo = new ProcessStartInfo(e.Link.LinkData.ToString());
        Process.Start(sInfo);
    }
}
}

Как создать сценарий, который принимает эти параметры в URL, чтобы заполнить два поля текстовых полей, а затем отправить форму?

Это моя HTML-страница:

  <form action="/send" method="post" novalidate="novalidate">
      <input class="form-control" data-val="true" data-val-UserName="Wrong username" data-val-required="Enter a valid Username" id="Username" name="Username" placeholder="Username" type="text" value="">
      <input class="form-control" id="FirstName" name="FirstName" placeholder="First Name" type="text" value="">   
      <button type="submit">Sign In</button>
  </form>

Я совершенно не знаком с кодированием, поэтому старался максимально упростить мой код.

Я посмотрел на возможные методы, такие как QueryStrings, JavaScriptи Jquery, но я не уверен, как подойти к этой проблеме.

javascript,c#,jquery,query-string,

0

Ответов: 1


-1

Есть несколько способов сделать это на самом деле, но я расскажу вам, как я буду делать это в javascript с небольшим количеством JQuery.

у нас есть переменная с URL-адресом, который мы начинаем с:

var url = "http://www.example.com/?UserName=value1&FirstName=value2"
var params_string = url.split("?")[1] //UserName=value1&FirstName=value2

поэтому сначала мы разделим строку на список, подобный выше, который возвращает список элементов, разделенных символом «?», но нам нужен только второй элемент (по индексу 1), поэтому мы добавим [1] в конец, чтобы сохранить только этот бит.

Затем мы разделим его на отдельные параметры.

var params_string_list = params_string.split("&")
["UserName=value1","FirstName=value2"]

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

var params = {}
for(var i =0;i < params_string_list.length;i++ ){
     var temp = params_string_list[i].split("=") // looks like ["UserName","value1"]
     params[temp[0]]= temp[1]
} //params now looks like  {"UserName":"value1","FirstName":"value2"}

поскольку это облегчает доступ и использование. мы можем сделать следующее, чтобы установить значения в форме:

if(params.UserName){
    $('#Username').val( param.UserName );
}
if(params.FirstName){
    $('#FirstName').val( param.FirstName );
}

если существуют статуты, чтобы проверить, существует ли значение в объекте, поэтому мы не отправляем значение «undefined» случайно.

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

JavaScript, C #, JQuery, строки запроса,
Похожие вопросы