如何通过路由值获取参数名称?

时间:2014-05-27 14:57:20

标签: c# asp.net-mvc-4

我正在使用MVC 4。 有没有办法通过路由值获取动作参数名称。

    public ActionResult Index(string id, string staffId)
    {
        ViewData.Add("idList", idList);
        return View();
    }

假设我有这个“索引”动作。控制器名称为“TestController”。

在视图中,我可以使用路由值controller =“Test”,action =“index”来获取参数名称列表{“id,staffId”}。此路线值在视野中是动态的。

2 个答案:

答案 0 :(得分:0)

使用模型。你不应该像ViewData一样把所有东西放进去。

只创建一个简单的对象,该对象将包含View所需的数据,并以这种方式传递信息。

答案 1 :(得分:0)

我找到了自己的方式。我看到我的问题令人困惑。但这就是我要找的东西。

    var assembly = AppDomain.CurrentDomain.GetAssembliesFromApplicationBaseDirectory(
            x => x.GetName().Name == "XXXX").Single();

    var controllerTypes = assembly.GetTypes().Where(x => x.Name == Model.Controller + "Controller");

    var controllerType = controllerTypes.Where(x => x.Namespace.Contains(Model.Area)).Single();

    var action = controllerType.GetMethod(Model.Action);

    var parameters = action.GetParameters();

但我仍然不确定,将此逻辑置于View中是否正确。