我正在使用ASP.NET MVC并且我有一个看起来像这样的/Application/Errors/DependingWhichHyperlinkClicked
最后一个参数通过此代码传递给URL <a href="@Url.Action("Errors", new { id=item.Application})"> @Html.DisplayFor(modelItem => item.Application) </a>
我想采取URL的最后一部分并将其存储在变量中。然后,此变量将用于LINQ查询,以显示与URL的最终参数匹配的结果。最终参数可以根据点击的超链接而改变,因为我想在不同的页面上显示不同的结果。
我认为代码看起来与此类似,但我可能错了......
var queryString = ...
var applications = from s in db.ElmahErrors
where s.Application == queryString
select s;
我只是不确定要写入什么才能使queryString
变量接受URL参数。任何帮助将不胜感激。
提前致谢。
答案 0 :(得分:2)
如果您使用默认路由,则可以使用RouteData.Values属性: -
RouteData.Values["id"]
答案 1 :(得分:0)
让我们说“yourUrl”包含:“/ Application / Errors / dependentWhichHyperlinkClicked”
这是一个简单的解决方案:
var splited = yourUrl.Split('/');
var queryString = splited.last();
您还可以使用RegEx提取最终参数:
var queryString = Regex.Match(yourUrl, @"\/Application\/Errors\/(.*)").Groups[1];
此选项“更安全”(例如,如果您的参数中包含/,则拆分将仅返回参数的最后部分),但您必须改进我的基本正则表达式。