powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не получается прочитать Request.QueryString[]
7 сообщений из 7, страница 1 из 1
Не получается прочитать Request.QueryString[]
    #38103738
Фотография Gena928
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый,
есть простая форма, которая вызывает метод Post:
Код: plaintext
1.
2.
3.
4.
5.
6.
<% Html.BeginForm("CreateNewExam", "Home", FormMethod.Post, new { name = "frm", id = "frm" }); %>

    <input type="text" id="input_CrExamID" name="input_CrExamName" value="Some value" />
    <input type="submit" name="createButton" value="Create Me!" />

<% Html.EndForm(); %>



ActionResult:
Код: c#
1.
2.
3.
4.
5.
[HttpPost]
public ActionResult CreateNewExam(FormCollection formCollection)
{
            string var = Request.QueryString["ExamID"].ToString();
}


Ошибка вылетает при попытке получить QueryString. Т.е. на первой строчке.
При этом я вижу что приложение уже перескочило на другую страничку, поэтому,ессесно, QueryString там нет.

Можно ли не "перескакивать" на другую страничку при обработке ActionResult? Т.е. чтобы QueryString осталась? Она мне оч. нужна.
...
Рейтинг: 0 / 0
Не получается прочитать Request.QueryString[]
    #38103762
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С QueryString все в порядке, просто в ней нет параметра ExamID, поэтому ToString сваливается в ошибку.
...
Рейтинг: 0 / 0
Не получается прочитать Request.QueryString[]
    #38103835
Фотография Gena928
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,
А есть идеи почему его там нет?

Дело в том, что при загрузке формы все работает:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public ActionResult Menu()
{
// Номер экзамена
string _ExamID = "";

if (Request.QueryString["ExamID"] != null)
    _ExamID = Request.QueryString["ExamID"].ToString();

// Значение _ExamID успешно получено, залезли в базу, заполнили форму.....

}



На той же форме, но при нажатии кнопки и вызове метода Post:
Код: c#
1.
2.
3.
4.
5.
6.
7.
[HttpPost]
public ActionResult CreateNewExam(FormCollection formCollection)
{
// Номер экзамена
string _ExamID = Request.QueryString["ExamID"].ToString(); // ошибка!

}
...
Рейтинг: 0 / 0
Не получается прочитать Request.QueryString[]
    #38103850
Фотография Gena928
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, туплю.

получается, когда я гружу страничку, там есть QueryString, а когда вызывается метод Post, то приложение тут-же перескакивает на другой адрес (в данном случае .../Home/CreateNewExam) и QueryString уже нет.


Пасиб.
...
Рейтинг: 0 / 0
Не получается прочитать Request.QueryString[]
    #38103912
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gena928, Вам не мешало бы разобраться в том, что такое GET и что такое POST.

P.S.: впервые вижу, что кто-то обращается к Request.QueryString внутри контроллера ASP.NET MVC.
Вроде как параметры GET запроса итак прекрасно отображаются на параметры определённого действия (action) контроллера.
...
Рейтинг: 0 / 0
Не получается прочитать Request.QueryString[]
    #38104046
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gena928,

Бесплатный букварь:

1. Переменную не называем var!
2. Зачем Query String делать ToString ? )
3. При методе пост используем - Reques.Form["ExamName"].
4. При использовании FormCollection - formCollection["ExamName"].
5. (2, 3, 4 в топку) MVC сам все делает.

Должно быть как то так:
Код: plaintext
1.
2.
3.
4.
<form method="post" action="<%=Url.Action("CreateNewExam", "Home")%>">
    <input type="text" name="ExamName" value="Some value" /> <!-- ExamName!! -->
    <input type="submit" name="CreateButton" value="Create Me!" />
</form>


Код: c#
1.
2.
3.
4.
5.
[HttpPost]
public ActionResult CreateNewExam(stirng ExamName)
{
    return Content("Hello world " + ExamName);
}
...
Рейтинг: 0 / 0
Не получается прочитать Request.QueryString[]
    #38105376
Фотография Gena928
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон,
Спасибо большое. Буду ковыряться.

Небольшой вопрос (подозреваю что дико ламерский):
- при попытке отправить запрос на сервер через форму (<form method="post"...) MVC хочет видеть только "беспараметрический конструктор" для класса.

Т.е. вот такая штука НЕ прокатывает:
Код: c#
1.
2.
3.
4.
5.
6.
[HttpPost]
public ActionResult Menu(string PaperCode, MyClass c)
{
    // some actions
    return View();
}


Ругается: Для данного объекта не определено беспараметрических конструкторов.
Хочет так:
Код: c#
1.
2.
3.
4.
5.
6.
[HttpPost]
public ActionResult Menu()
{
    // some actions
    return View();
}



Я специально сделал другой проект MVC, контроллер, вьюху с формой. Отрабатывает на ура:
Код: c#
1.
2.
3.
4.
5.
6.
[HttpPost]
public ActionResult Menu(string PaperCode, MyClass cl)
{
    // работаем...
    return View(cl);
}



Что это может быть?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не получается прочитать Request.QueryString[]
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]