我尝试在asp.net mvc视图上创建动态链接,其值来自数据库。 这是我的代码
@foreach (var menu in Model)
{
<li>
<h4><span class="@menu.Glyphicon"></span> @menu.CategoryName</h4>
<ul>
@foreach (var mn in menu.LeftMenus)
{
if (mn.RouteValue == null)
{
<li><a href="@Url.Action(@mn.ActionName, @mn.ControllerName)"><span class="glyphicon glyphicon-tasks"></span> @mn.MenuName</a></li>
}
else
{
<li><a href="@Url.Action(@mn.ActionName, @mn.ControllerName, new { @mn.RouteValue })"><span class="glyphicon glyphicon-tasks"></span> @mn.MenuName</a></li>
}
}
</ul>
</li>
}
当我将@RouteValue解析为@ url.Action时,路由值错误并且像
<a href="/Import?RouteValue=workType%20%3D%201">
这是我的模特
public class LeftMenuViewModel
{
public string CategoryName { get; set; }
public string Glyphicon { get; set; }
public List<LeftMenu> LeftMenus { get; set; }
}
public class LeftMenu
{
public string MenuName { get; set; }
public string ActionName { get; set; }
public string ControllerName { get; set; }
public object RouteValue { get; set; }
}
我如何使用动态路线值?
答案 0 :(得分:2)
我已经为我的问题找到了合适的答案。
这是我的模特
public class LeftMenuViewModel
{
public string CategoryName { get; set; }
public string Glyphicon { get; set; }
public List<LeftMenu> LeftMenus { get; set; }
}
public class LeftMenu
{
public string MenuName { get; set; }
public string ActionName { get; set; }
public string ControllerName { get; set; }
public string ParameterName { get; set; }
public object RouteValue { get; set; }
}
...在此之后,在我看来,我这样写:
RouteValueDictionary routeValue = new RouteValueDictionary();
routeValue.Add(@mn.ParameterName,@mn.RouteValue);
<li><a href="@Url.Action(@mn.ActionName, @mn.ControllerName, routeValue)"<span class="glyphicon glyphicon-tasks"></span> @mn.MenuName</a></li>
答案 1 :(得分:0)
尝试使用Route值设置参数名称,如
new { @m.ParameterName = @mn.routeValue }