Я только дважды проверял, и это должно работать нормально. Я создал этот метод контроллера в новом главном контроллере MVC приложения:
public ActionResult Page(string type, string keywords, string sortType)
{
this.ViewData["Type"] = type;
this.ViewData["Keywords"] = keywords;
this.ViewData["SortType"] = sortType;
return this.View("Index");
}
, а затем добавил это индексный:
<ul>
<% foreach (var item in ViewData) { %>
<li><%: item.Key %> = <%: string.IsNullOrEmpty(item.Value as string) ? "null" : item.Value %></li>
<% } %>
</ul>
<%: Html.ActionLink("Hello", "Page", "Home", new { type = "new", keywords = "blahblah", sortType = "Date" }, null) %>
страница правильно отображает следующий после нажатия на «Hello» ссылки:
o Type = new
o Keywords = blahblah
o SortType = Date
Так что, если это работает в простом новом приложении MVC, я думаю, что это должно быть либо другие методы в контроллере или проблема маршрутизации вызывающих.
Какой URL-адрес генерирует Url.Action? Также проверьте свои маршруты. –
Маршруты в порядке, у меня есть только один маршрут, который он туда вводит. Ключевые слова передаются как строковые, но тип и sortType равны нулю. – 2010-09-22 11:29:02
Хорошо, когда вы просматриваете страницу с этой ссылкой, что на самом деле выглядит сгенерированная ссылка, например. 'http: // blah/Search/Page /? type = new & keywords = blahblah & sortType = Date' –