我的视图不是强类型视图,我需要在控制器操作中迭代Request Params以确定发布的值。
有没有更好的方法来遍历nameValueCollection AllKeys?
我目前正在循环请求参数并正确设置值。
foreach (var key in Request.Params.AllKeys)
{
if (key.Equals("CustomerId"))
queryObject.CustomerId = Request.Params[key];
else if (key.Equals("OrderId"))
queryObject.OrderId= Request.Params[key];
//and so on
}
我在这段代码中看到了相当多的重复。有没有更好的方法来解决这个问题?
答案 0 :(得分:6)
也许是这样的?
queryObject.CustomerId = Request.Params["CustomerId"];
queryObject.OrderId = Request.Params["OrderId"];
答案 1 :(得分:6)
因为 NameValueCollection 不提供搜索方法,只需澄清您的代码,您就可以执行以下操作:
foreach (var key in Request.Params.AllKeys)
{
queryObject.CustomerId = key.Equals("CustomerId") ? Request.Params[key] : queryObject.CustomerId;
queryObject.OrderId = key.Equals("OrderId") ? Request.Params[key] : queryObject.OrderId;
//and so on ...
}
答案 2 :(得分:2)
你能否从查询对象中使用反射来获取getProperties,然后通过它们来读取request.params中的相应项?
答案 3 :(得分:0)