我想将多个值传递给控制器。控制器看起来像
Page(string type, string keywords, string sortType)
在asp.net页面中,
我有
<%=Url.Action("Page", "Search", new { type = "new",keywords = keywords, sortType = "Date" }) %>
但是type和sorType的值在控制器内传递为null。
我在这里做错了什么?
答案 0 :(得分:1)
我刚刚进行了双重检查,这应该可以正常工作。我在一个新的MVC应用程序的Home控制器中创建了这个控制器方法:
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应用程序中有效,我认为它必须是控制器中的其他方法或导致它的路由问题。