我正在使用MVC 4。 有没有办法通过路由值获取动作参数名称。
public ActionResult Index(string id, string staffId)
{
ViewData.Add("idList", idList);
return View();
}
假设我有这个“索引”动作。控制器名称为“TestController”。
在视图中,我可以使用路由值controller =“Test”,action =“index”来获取参数名称列表{“id,staffId”}。此路线值在视野中是动态的。
答案 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中是否正确。