C# 如何通过路由值获取视图中的参数名称?

C# 如何通过路由值获取视图中的参数名称?,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,我正在使用MVC4。 是否有办法通过路由值获取操作参数名称 public ActionResult Index(string id, string staffId) { ViewData.Add("idList", idList); return View(); } 假设我有这个“索引”动作。控制器名称为“TestController” 在视图中,我可以使用route value controller=“Test”、action=“ind

我正在使用MVC4。 是否有办法通过路由值获取操作参数名称

    public ActionResult Index(string id, string staffId)
    {
        ViewData.Add("idList", idList);
        return View();
    }
假设我有这个“索引”动作。控制器名称为“TestController”


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

使用模型。你不应该把所有的东西都放在
ViewData


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

我找到了自己的方法。我觉得我的问题令人困惑。但这就是我要找的

    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();

但我仍然不确定,如果把这个逻辑放在眼里是否正确。

你的问题令人困惑。你的意思是想获取用于该路线的参数列表,或将值传递给这些参数,或其他什么?虽然我同意,但我不确定这是否回答了问题,尽管我不确定操作是什么如果你试图从控制器获取信息到视图,你使用模型。如果愿意,您可以整天使用ViewData和TempData,但是您忽略了所使用的基础结构的一个要点。我同意OP确实不清楚他们在寻找什么。我不是在问ViewData。您可以忽略它。您的示例是使用反射来获取控制器的函数索引的参数。如果您的场景是希望在视图中列出参数,那么请确保这样做。如果要在视图中使用它们,请返回视图(参数);。如果没有,那么我不知道你为什么想要这个。