s.Substring(2, 1) == ":"
напр .:
" e:".Substring(2, 1) == ":" // will return true
Решение:
public ActionResult TestAction(string paramName)
{
if (!String.IsNullOrEmpty(Request["paramName"]))
{
return RedirectToAction("TestAction", new { paramName = Request["paramName"]});
}
/* ... */
}
В Вашем маршруте избавьтесь от {paramName} части URL. Это должно быть:
TestController.mvc/TestAction
Поскольку это - URL, к которому Вы хотите, чтобы запрос направил. Ваша форма затем отправит на тот URL. Отправленные значения формы отображаются на параметрах метода действия автоматически, не волнуйтесь о не передаче тех данных к Вашему методу действия.
Мое понимание - то, что это - то, как HTML работает. Если Вы делаете a <form url="foo" method="get">
и отправьте форму, затем форма отправит нечто?
param1=value1&...¶mn=valuen
Это не имеет никакого отношения к MVC.
Кроме того, что часть REST, который нарушает URL? Это не симпатичный URL, но по строгому определению REST, это может быть УСПОКОИТЕЛЬНО. REST не указывает, что параметры запроса должны быть в сегменте URL. И в этом случае, это - параметры запроса.