我想将每个操作方法参数名称及其 相应的值记录在数据库中作为键值对。作为 的一部分,我使用OnActionExecuting ActionFilterAttribute,因为它将会是正确的地方(OnActionExecuting方法将调用 所有控制器动作方法调用)来获取Action Executing上下文。Asp .Net MVC正在执行操作 - 获取用户定义类型的操作参数值在执行操作时的值
我得到.Net类型(string,int,bool)的值。但我 无法获取用户定义类型(自定义类型)的值。 (例如:登录模式)。我的模型也可能有一些其他嵌套用户定义的类型。
我试图获取用户定义类型的值,但我 获取唯一的类名字符串。我希望我们可以在 中做反思。
请问任何人协助解决问题。因为我是新的 来反思。这对我有帮助。提前致谢。 我需要在OnActionExecuting中获取这些类型的名称和值。
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
ActionParameter = new SerializableDictionary<string,string>();
if(filterContext.ActionParameter != null)
{
foreach(var paramter in filterContext.ActionParameter)
{
//able to get returnUrl value
//unable to get model values
ActionParameter.Add(paramter.Key, paramter.Value);
}
}
}
public ActionResult Login(LoginModel model, string returnUrl)
{
return View(model);
}
用户定义类型
public class LoginModel
{
public string UserName {get;set;}
public string Password {get;set;}
//User defined type
public UserRequestBase Request {get;set;}
}
//User defined type
public class UserRequestBase
{
public string ApplicationName {get;set;}
}
我能够得到OnActionExecuting的RETURNURL(登录方法PARAM)的值,而不是模型(登录方法PARAM)。我能够看到值,但不知道如何访问它,尽管我无法获取它,但我需要泛型,因为我在控制器中有20个方法,所以我不仅可以使用LoginModel。
你可能想看看这个:http://stackoverflow.com/questions/9758051/get-type-using-reflection – wahwahwah 2014-11-20 20:02:38
正如在链接中提到的,我们需要提供“Item”作为键getProperty,但是在这里我不知道属性名称,因为它对于每个操作方法可能会有所不同。 。actualData.getType()的getProperty( “项目”)PropertyType.Name。 – Prem 2014-11-20 20:08:24
请任何人都可以帮忙吗? – Prem 2014-11-21 07:43:03