MVC и позиционные параметры в строке запроса - PullRequest
2 голосов
/ 22 марта 2010

Это больше вопрос для удовлетворения моего любопытства, чем то, что мне действительно нужно, чтобы ответить. Вернувшись в ASP.NET WebForms, я бы иногда использовал позиционный параметр в строке запроса, если мне нужно было только передать одну вещь на страницу. Например:

http://localhost/site/MyPage.aspx?ABCD1234

Тогда мой код будет выглядеть так:

string accountNumber = "";
if (Request.QueryString.Count > 0)
   accountNumber = Request.QueryString[0];

В MVC, вы можете передать параметр строки позиционного запроса в метод контроллера вместо обращения к нему через Request.QueryString?

Ответы [ 2 ]

0 голосов
/ 22 марта 2010

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

Это работает из проекта по умолчанию, который ASP.NET MVC создает при создании проекта:

    public ActionResult Index() {

        if (Request.QueryString.Count > 0) 
            ViewData["Message"] = "Welcome to ASP.NET MVC: " + Request.QueryString[0];
        else
            ViewData["Message"] = "Welcome to ASP.NET MVC";

        return View();
    }
0 голосов
/ 22 марта 2010

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

http://mydomain.com/controller/action/SingleStringParameterValue

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

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