问题:
是否可以知道所调用的操作所期望的参数类型?例如,我有一些
action
作为:
[TestCustomAttr]
public ActionResult TestAction(int a, string b)
{
...
和
TestCustomAttr
定义为:
public class TestCustomAttr : System.Web.Mvc.ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
...
所以,当电话打到
TestAction
,这里,里面
OnActionExecuting
,我想知道
测试操作
方法(例如:在本例中,有两个预期参数。一个是类型
int
另一个是类型
string
.
实际用途:
实际上,我需要改变
QueryString
。我已经能够获取querystring值(通过
HttpContext.Current.Request.QueryString
),更改它,然后手动将其添加到
ActionParameters
像
filterContext.ActionParameters[key] = updatedValue;
问题:
当前,我尝试将值解析为
整数
,如果成功解析,我假设它是
整数
,所以我进行了所需的更改(例如值+1),然后将其添加到操作参数中,与键相对。
qsValue = HttpContext.Current.Request.QueryString[someKey].ToString();
if(Int32.TryParse(qsValue, out intValue))
{
//here i assume, expected parameter is of type `int`
}
else
{
//here i assume, expected parameter is of type 'string'
}
但我想知道确切的预期类型。因为
一串
可以是
"123"
,假设为
整数
并作为整数参数添加,导致其他参数出现null异常。(反之亦然)。因此,我希望将更新后的值解析为准确的预期类型,然后根据其键添加到操作参数中。那么,我该怎么做呢?这是可能的吗?可能是
Reflection
有什么帮助吗?
重要:
我愿意接受建议。如果我的方法不能达到实际目的,或者如果有更好的方法,请分享;)