我正在尝试使用函数在视图中返回路由值:
查看:
@functions {
public Dictionary<string, object> GetFilters()
{
var filters = new Dictionary<string, object>();
var f_phrase = this.Request["f_phrase"] ?? string.Empty;
var f_site = this.Request["f_site"] ?? string.Empty;
var f_device = this.Request["f_device"] ?? string.Empty;
var f_startdate = this.Request["f_startdate"] ?? string.Empty;
var f_enddate = this.Request["f_enddate"] ?? string.Empty;
var f_package = this.Request["f_package"] ?? string.Empty;
filters.Add("f_phrase", f_phrase);
filters.Add("f_site", f_site);
filters.Add("f_device", f_device);
filters.Add("f_startdate", f_startdate);
filters.Add("f_enddate", f_enddate);
filters.Add("f_package", f_package);
return filters;
}
}
然后在我的链接上,我希望能够这样做:
@Html.ActionLink("Export file", "Export", "Log", new { @GetFilters() }, new { @class="iconDocumentText"})
但不起作用。
答案 0 :(得分:0)
来自routeValues
参数的MSDN:
包含路径参数的对象。参数是 通过检查的属性通过反射检索 宾语。通常使用对象初始化程序创建对象 语法。
所以你需要构造一个对象并返回它而不是返回一个字典(不确定,但也许你可以使用dynamic
/ ExpandoObject
来实现这一点,或者只是创建一个具有命名为的属性的自定义类型你的路线价值)。
示例:
public class FilterRouteValues
{
public string f_phrase { get; set; }
// ...
}
public FilterRouteValues GetFilters()
{
// Read from request, fill an instance of FilterRouteValues
}
标记:
@Html.ActionLink("Export file", "Export", "Log", GetFilters(), ...)